Solutions to the 33 challenges at www.pythonchallenge.com
Abandoning because I really had to look up for hints to the last problem. :()