I enjoy the british game show 8 Out of 10 Cats Does Countdown because of the comedians they have on the show and because the word and number games are fun too. While watching one day, I wondered how hard it would be to write an efficient non-brute-force algorithm to find all possible words in a dictionary given a set of letters.
My high level solution was to pre-process the dictionary into a collection that maps the ordered letters in each word as the hash to lists of words made of of the letters in the hash key. When user input comes in, I calculate all ordered permutations of the letters (faster than all unordered permutations) and lookup matching words using the hash map.
There is also a solver for the number game, but it is still a work in progress (it will find many of the possible solutions, but not all of them).
Check out the result over on https://countdown-solver.mikeyt.net.