David, you better try that Grolsch soon before it goes bad. :)
I finally got around to trying to solve your problem. Figuring out how to generate all possible combinations threw me for a loop (teeheehee) for a bit. :) It's the kind of thing where I go "oh, that's easy" and never actually do it.
It runs quite a bit faster than your first run but slower than your second run, probably because I'm doing the slow solution on faster machine. Doesn't Python have a way to count how many machine cycles it took a subroutine to run?
Jerry
I think Greg sent out my solution, rather than the puzzle, so don't look at the twister.py source if you want to solve it yourself first. You didn't look, did you? :-) What you need for your own solution are the attached files for the word list and the runner script that would call your solution. That is, create your own twister.py based on the interface used in twister_runner.py.