Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def permute(s):
- s=list(s)
- n,ans=len(s),[]
- def dfs(i):
- if i==n-1:
- ans.append(''.join(s))
- return
- # we will swap indices from i+1 to n with i and do backtrack. This ensures generations of diff permutatations
- #In recursion level 1 we do swapping from 0th index to (0+1,n) indices
- #in recursion level 2 we do swapping from 1st index to (1+1,n) indices
- #in recursion level ith we do swaping from ith index to (i+1,n) indices
- for j in range(i+1,n):
- s[i],s[j]=s[j],s[i]
- dfs(i+1)
- s[i],s[j]=s[j],s[i]
- dfs(0)
- return ans
- permute("shpdwa")
Advertisement
Advertisement
Advertisement
RAW Paste Data
Copied
Advertisement