Given a dictionary (just a list of strings).
You receive a feed of an unknown number of letters from an external source. Given the string of letters, how would you go about listing all valid words (from the diciontary) you can make from any combination from those letters.
So if you receive: abpplead
You should find apple, bad, pad, lead, etc.
I know there's no best answer. But what are some reasonably efficient ways to do it, what data structures to use, etc.
Also, assume you can pre-process the input, so you can choose to store the input letters as they come in in whatever data structure you want.