This is a simple anagram solver.
You can use it against any spelling dictionary that is formatted:
*one word per line
*in alphabetical order
if its not in alphabetical order, you could send it through pipe.
The basic algorithm tries all possible combinations of a word, in such a way that the combinations are generated in alphabetical order. It also knows the next real word in the list, so it can tell whether or not it is futile to pursue a certain node. These optimizations make it possible for it to solve a 8+ letter word in a few seconds
To use it, simply point it to your aspell dictionary file, usually located in /usr/share/dict/linux.words