PYTHON中的递归,使所有可能的排列都不重复
我使用递归编写了一段代码,它遵循以下规则: 规则 2输入:PYTHON中的递归,使所有可能的排列都不重复,python,recursion,input,substring,permutation,Python,Recursion,Input,Substring,Permutation,我使用递归编写了一段代码,它遵循以下规则: 规则 2输入: 第一个输入:将输出的长度定义为整数 第二个输入:将用户想要的所有元素作为字符串写入 成为输出的一部分 使用这两个输入,程序必须执行以下操作: 第一。查找输入中输入长度的所有可能的子字符串, []*第一次输入 第二。使用输入的元素形成所有可能的组合 第二个输入 三,。打印所有可能的长度组合[]*第一次输入,使用 第二个输入的元素,不重复 代码 我的代码如下,无法给出输出的长度: def stringPermutations(
- 第一个输入:将输出的长度定义为整数
- 第二个输入:将用户想要的所有元素作为字符串写入 成为输出的一部分
- 第一。查找输入中输入长度的所有可能的子字符串, []*第一次输入
- 第二。使用输入的元素形成所有可能的组合 第二个输入
- 三,。打印所有可能的长度组合[]*第一次输入,使用 第二个输入的元素,不重复
def stringPermutations(string, prefix, permutation_list):
if len(string) == 0:
permutation_list.append(prefix)
else:
for i in range(len(string)):
rem = string[0:i] + string[i + 1:]
stringPermutations(rem, prefix + string[i], permutation_list)
return sorted(list(dict.fromkeys(permutation_list)))
def main():
n = int(input("write size: "))
b = str(input("Write String: "))
permutation_list = [] * n
print(stringPermutations(b, " ", permutation_list))
if __name__ == '__main__':
main()
应如何工作的示例:
输入:
2
+x#
输出:
['+x', '+#', 'x+', 'x#', '#+', '#x']
有人能告诉我为什么它不起作用吗
非常感谢你的帮助 更正代码:
输入:
2
+x#
输出:
['+x', '+#', 'x+', 'x#', '#+', '#x']
['+x', '+#', 'x+', 'x#', '#+', '#x']