我需要帮助制作一个程序,该程序使用 args 获取字符串并将其随机化为每种可能性。然后,程序的结果将被保存到用户在执行程序时提供的文本文件中。
如果你需要all以随机顺序排列可能的排列,那么我建议构建然后打乱列表:
from itertools import permutations
from random import shuffle
def shuffled_permutations(s):
perms = list(permutations(s)) # create all permutations
shuffle(perms) # shuffle the list randomly
return ["".join(p) for p in perms] # rebuild strings and return
应用此功能:
>>> shuffled_permutations("ABC")
['BCA', 'CBA', 'BAC', 'ABC', 'ACB', 'CAB']
如果您确实不需要随机顺序的排列(即您只想知道它们都是什么),那么使用会更有效permutations
直接,例如
for p in permutations(s):
Note对于一个字符串len(s) == n
,所有排列的长度是n!
(例如对于n == 5
, (5 * 4 * 3 * 2 * 1) == 120
);这会变得非常长(例如,我的用户名有 3,628,800 种排列)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)