我正在尝试编写字符串排列问题。而不是字符串,我有一个整数列表,如 [1,2,3]。我必须打印出列表的所有可能排列。但是,我的代码存在一些我无法弄清楚的问题。不知何故,if not in words
基本案例中的行只命中一次。我试图从过去的一小时中弄清楚这一点。任何帮助,将不胜感激!。TIA 这是代码
words = list()
def permute(nums):
if len(nums) == 0:
return None
l = 0
r = len(nums)
permute_helper(nums,0,r)
def permute_helper(nums,start,end):
current = 0
if start == end-1:
if not nums in words:
print 'appended'
words.append(nums)
else:
for current in range(start,end):
temp = nums[start]
nums[start] = nums[current]
nums[current] = temp
#Recursive call
permute_helper(nums,start+1,end)
temp = nums[start]
nums[start] = nums[current]
nums[current] = temp
permute([1,2,3])
print words