Permutation In Algorithm Design