Вы говорите о поиске настоящих двухсимвольных слов, которые можно составить из любой комбинации списка символов?
В этом случае вам нужно написать алгоритм, который может обработать все возможные комбинации из предоставленных букв, и для каждой комбинации попробовать (и наоборот) против IDictionary, который действует как настоящий словарь из реальных двух слова.
непроверенный код:
IDictionary<string, string> dictionary = GetRealTwoLetterWordDictionary();
char[] availableChars = new char[] { 'a', 's', 't' };
string[] combinations = GetAllCombinations(availableChars);
IList<string> results = new List<string>();
foreach (string combination in combinations)
{
if (dictionary.ContainsKey(combination)))
{
results.Add(combination);
}
string reversed = combination.Reverse();
if (dictionary.ContainsKey(reversed)))
{
results.Add(reversed);
}
}