algorithms for permutations