permutations and combinations

including all of the permutations and combinations listed in the digest.
Most of the algorithm use DFS method.