add NextPermutation