You can use extended slicing to reverse strings.

This is a good solution to a neat problem. The only change I'd make is the way your reverse strings. You can use Python's "extended slice" syntax to quickly reverse a string without needing to write that function yourself.  

There are more examples, here:
https://docs.python.org/2/whatsnew/2.3.html#extended-slices

No need to merge this change unless you want, but I thought you might appreciate the example.