https://sharelearn.net/learn/courses/udemy-algorithmic-problems-in-python/
Recursion, Backtracking and Dynamic Programming in Python