You'll need a file, wordlist.txt, containing one word per line, no spaces etc. Build using make canonize and gather (and the system sort utility) are used to generate a file containing the letterbanks in readable form. gentables uses this to create a pre-built graph of all possible letterbanks in tables.h letterbank lets you look up the letterbanks for any word. letterswaps are built on the fly - the code to do this is far from efficent, but modern computers are so fast now that the level of complexity needed to code what previously would have been expected for this task is just not worth the effort... a day of programming versus twenty or thirty seconds of runtime? No contest!