That's funny. I implemented almost the exact same thing a few years ago, although mine is arguably more complete :)
https://github.com/pthatcher/pyrec
Here's my original post about it:
http://www.valuedlessons.com/2009/10/introducing-pyrec-cure-...
And here's my analysis of how much less memory it uses: