Permutations

This is a branch from combinations. It's designed to mimic Ruby's permutation function