Rename a function and document requirements
Add a bruteforce generator and python 3 support