shmem,
This doesn't seem to scale very well. I started to run it against a 60K word dictionary file and I gave up waiting for it to produce output after a few minutes. Perhaps you could modify it to accept a target word from the command line and only do all matches if one isn't provided?