permutations and combinations

Including all of the permutations and combinations listed in the digest.
Most of the algorithms use DFS method.