Python does not have tail recursive optimization, but we can work around it by using setrecusion limit
http://github.com/dmgerman/f-python/
Part of the Functional Python series:
https://www.youtube.com/playlist?list=PLhDPo5SPJq-U7C-KJCIULIhLlbFUzYmqZ