using System.Collections.Generic;
public static void Main()
var dictionary = new List<string> { "aabcd", "abcde", "bcdef" };
var lettersWithBlank = new List<char> { 'a', 'b', 'c', 'd', '#' };
FindWordsWithBlank(lettersWithBlank, dictionary);
public static void FindWordsWithBlank(List<char> letters, List<string> dictionary)
foreach (var word in dictionary)
var allowedLetters = new List<char>(letters);
foreach (var wordLetter in word)
if (allowedLetters.Contains(wordLetter))
allowedLetters.Remove(wordLetter);
if (allowedLetters.Count == 1)