leetcode 46. permutations