我正在尝试进行可能的组合'AB'
,例如:
[('A', 'A'), ('A', 'B'), ('B', 'A'), ('B', 'B')].
我正在使用itertools.permutations
,但它刚刚返回,[('A', 'B'), ('B', 'A')]
什么是同时拥有程序('A','A')
和('B','B')
太。
另外,这里我说的是 input 'AB'
。如果我必须对输入进行组合'AB'
,'BA'
从而使输出为[('AB','AB'), ('AB, 'BA'), ('BA', 'BA'), ('BA','BA'])
.
另外,我不担心顺序。
您正在寻找的 itertools 工具是product
.
>>> list(itertools.product('AB', repeat=2))
[('A', 'A'), ('A', 'B'), ('B', 'A'), ('B', 'B')]
这将给出长度为 2(由repeat
关键字指定)的指定元素的所有可能排列。双方permutations
并combinations
明确说明,他们不重复的元素。函数itertools.combinations_with_replacement
接近你想要的,它允许重复元素,但只给出不同的组合,而不是所有的排列。该功能itertools.permutations_with_replacement
不存在,因为这正是itertools.product
给你的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句