我想排列一個列表,但我不能這樣做,它走向無限循環。我嘗試不同的東西,但不知何故唯一,它顯示我是1 2 3 ... 1個2 3等回溯排列列表
這是代碼:
def prints(v,k):
s = ''
for i in range(k + 1):
s += str(v[i]) + ' '
print(s)
def continuare(v,k):
ok = True
for i in range(k):
if v[i] == v[k]:
ok = False
break
return ok
def back(v,a):
k = 0
caut = False
while k>-1:
caut = False
pos = 0
while pos < len(a) and caut == False:
v[k] = a[pos]
pos += 1
if continuare(v,k):
caut = True
if caut == False:
k -= 1
elif k == len(a) - 1:
prints(v,k)
else:
k += 1
a = [1,2,3]
v = []
for x in range(len(a)):
v.append(a[0])
back(v,a)
您是否有預期輸出的樣本輸入? – Jivan
我希望程序排列列表a。輸出應該是這樣的:123 132 213 231 312 321 – KangJiYoung13
你想要列表的所有排列?使用[itertools.permutations](https://docs.python.org/2/library/itertools.html#itertools.permutations)。 –