将字符串输入随机化为所有可能性

2024-02-04

我需要帮助制作一个程序,该程序使用 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(使用前将#替换为@)

将字符串输入随机化为所有可能性 的相关文章

随机推荐