full permutation