Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建字符串Python的所有可能变体_Python_String_Combinations_Permutation_Itertools - Fatal编程技术网

创建字符串Python的所有可能变体

创建字符串Python的所有可能变体,python,string,combinations,permutation,itertools,Python,String,Combinations,Permutation,Itertools,我遇到了一个问题,我需要创建一个字符串所有可能变化的列表。我已经在itertools中尝试了一些方法,比如[''.join(I)for I in itertools.permutations('abc')]或 (comb=[''.join(i)for i in itertools.compositions_with_replacement('abc',3)]但正如我所期望的那样,它们的结果有点不同。我需要所有的变化,所以置换不是解决问题的方法。带有置换的组合非常好,但缺少一些子序列 此操作的结果

我遇到了一个问题,我需要创建一个字符串所有可能变化的列表。我已经在itertools中尝试了一些方法,比如
[''.join(I)for I in itertools.permutations('abc')]

(comb=[''.join(i)for i in itertools.compositions_with_replacement('abc',3)]
但正如我所期望的那样,它们的结果有点不同。我需要所有的变化,所以置换不是解决问题的方法。带有置换的组合非常好,但缺少一些子序列 此操作的结果是:

aab
aac
abb
abc
acc
bbb
bbc
bcc
ccc
但我还需要输出“aba”、“acb”、“bab”等(需要涵盖所有可能的变体) 也许我错过了itertools中的另一种方法,那会对我有帮助吗?
感谢您提供的任何帮助和建议

您使用的
itertools.product
具有与字符串大小相同的iterables:

来自itertools导入产品的

s='abc'
ss=[s]*len(s)
对于产品(*ss)中的r:
打印(“”.连接(r))
aaa
aab
aac
阿巴
神甫
abc
aca
acb
行政协调会
咩
巴布
美国银行
工商管理学士
bbb
英国广播公司
bca
bcb
密件抄送
民航局
驾驶室
cac
中国篮球协会
cbb
cbc
共同国家评估
建设银行
ccc

您使用的
itertools.product
的iterables数量与字符串大小相同:

来自itertools导入产品的

s='abc'
ss=[s]*len(s)
对于产品(*ss)中的r:
打印(“”.连接(r))
aaa
aab
aac
阿巴
神甫
abc
aca
acb
行政协调会
咩
巴布
美国银行
工商管理学士
bbb
英国广播公司
bca
bcb
密件抄送
民航局
驾驶室
cac
中国篮球协会
cbb
cbc
共同国家评估
建设银行
ccc

您是否尝试过使用替换组合获取每个产品的所有排列?您是否尝试过使用替换组合获取每个产品的所有排列?
产品
允许您使用更简单的:
对于产品中的r,重复=len(s)):
产品
允许您使用更简单的:
对于产品中的r,重复=len(s)):