permutation with real recursion