Optimize generate_problems
Compute m from state
Assert test_solution()
Allow specifying a different goal state
Add executables
Allow alphabet puzzles
Allow selecting different algorithms
Change message formatting
Migrate to Python 2