Permutation, DFS, recursive function