As I told before here is second implementation of one word anagrams, which prepares lookup table for all available words, if it is not generated and afterwards uses it for fast lookup.
The implementation of lookup table generation is quite unoptimized, but it is only done once per vocabulary.
If you want to change dictionary, add dictionary selection routine instead of fixed one here or just rename/delete old dictionary and anawords and analist files. Then make copy of your dictionary in same dictionary as this program with name list.txt.
First run:
Dict prepared in 0.726 s
Dict saved for future
Preparations took 0.889 s
Output:
Saved dict loaded
Preparations took 0.132 s
To stop: enter empty line
Give word: meti
['emit', 'item', 'mite', 'time']
0 ms
Give word: ewd
['dew', 'wed', "we'd"]
0 ms
Give word: team
['mate', 'meat', 'tame', 'team']
0 ms
Give word: mocupret
['computer']
0 ms
Give word: nocpurte
Word is not in vocabulary
0 ms
Give word: