Pattern Recognition: When you see "all possible", "find all", "combinations", "permutations", "subsets", "generate", "partition", "solve" — think backtracking ...