我有一个字符串.我想通过改变字符串中的字符顺序从该字符串生成所有排列.例如,说:
x='stack'
Run Code Online (Sandbox Code Playgroud)
我想要的是这样的列表,
l=['stack','satck','sackt'.......]
Run Code Online (Sandbox Code Playgroud)
目前我正在迭代字符串的列表转换,随机挑选2个字母并转置它们以形成一个新字符串,并将其添加到l的设置转换.根据字符串的长度,我计算可能的排列数,并继续迭代,直到设置大小达到限制.必须有更好的方法来做到这一点.
我生成所有可能的三个字母关键字e.g. aaa, aab, aac.... zzy, zzz下面是我的代码:
alphabets = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
keywords = []
for alpha1 in alphabets:
for alpha2 in alphabets:
for alpha3 in alphabets:
keywords.append(alpha1+alpha2+alpha3)
Run Code Online (Sandbox Code Playgroud)
能否以更加流畅有效的方式实现此功能?
我的目标是能够生成长度为x的所有可能的字符串(字母和数字),并且能够激活每个字符串的代码块.(像迭代器一样)唯一的问题是itertools中的那些不会在同一个字符串中复制字母.例如:
我得到"ABC""BAC""CAB"等而不是"AAA".
有什么建议?