|
|
@@ -0,0 +1,24 @@
|
|
|
+# Compute all permutations of a string
|
|
|
+
|
|
|
+def permute(self, nums):
|
|
|
+ """
|
|
|
+ :type nums: List[int]
|
|
|
+ :rtype: List[List[int]]
|
|
|
+ """
|
|
|
+ def insert_at_i(l, c, i ):
|
|
|
+ """insert char c at location i of list l."""
|
|
|
+ sub_start = l[:i]
|
|
|
+ sub_end = l[i:]
|
|
|
+ return sub_start + [c] + sub_end
|
|
|
+
|
|
|
+ def rec_per(char):
|
|
|
+ if len(nums) == 0:
|
|
|
+ return [[char]]
|
|
|
+ prev = rec_per(nums.pop())
|
|
|
+ ans = []
|
|
|
+ for i_l in prev:
|
|
|
+ for i in range(len(i_l)+1):
|
|
|
+ ans.append(insert_at_i(i_l,char,i))
|
|
|
+ print(ans)
|
|
|
+ return ans
|
|
|
+ return rec_per(nums.pop())
|