Computer Science Recursion & Backtracking