https://www.thinkdataanalytics.com/python-tutorial-recursive-function-debunked/>