string permutation recursion