我正在尝试编写将从给定数字添加到列表中的唯一组合的函数。 例如,当input = 3时,我期望列表包含123,132,213,231 ......等元素
resultss = []
def fun(number, result=''):
if len(result) == number:
return resultss.append(result)
else:
for x in range(1, number + 1):
if str(x) not in result:
result += str(x)
return fun(number, result)
fun(4)
print(resultss)
问题是,此功能仅添加第一个组合1234(例如4)。 任何解决方案?
答案 0 :(得分:0)
如前所述,如果这不仅仅是一个递归练习,你可以使用itertools来实现:
from itertools import permutations
def fun(number):
return [''.join(p)
for p in permutations([str(n) for n in range(1, number)])]