Try to add an character from 0 -> n , if the level list already contain the element then step to next one. Result is only appended when whole level list is completed. Add all level lists to results then index kth. Time complexity is O(n!)
class Solution:
def helper(self, nums, level, result, k):
if len(level) == len(nums):
result.append(level)
return
for i in range(0, len(nums)):
if nums[i] in level:
continue
level = level + nums[i]
self.helper(nums, level, result)
level = level[:-1]
def getPermutation(self, n: int, k: int) -> str:
# edge case
result = []
level = ''
nums = ''
for i in range(0, n):
nums = nums + str(i+1)
if len(nums) <= 1 or n == 1:
return nums
# regular case
self.helper(nums, level, result, k)
return result[k-1]