首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python中重复字符的排列

python中重复字符的排列
EN

Stack Overflow用户
提问于 2018-09-17 00:39:46
回答 2查看 0关注 0票数 0

并[a,A,B,A]

我想生成这个数字的排列结果的数量必须是4因为重复的字符有人可以帮我在python中编码

EN

回答 2

Stack Overflow用户

发布于 2018-09-17 09:29:25

这实际上可以使用一个名为Sympy的模块轻松实现,该模块有一个用于处理多个集合的模块,例如您描述的模块

代码语言:javascript
复制
>>> from sympy.utilities.iterables import multiset_permutations
>>> list(multiset_permutations([3,3,6,3]))
[[3, 3, 3, 6], [3, 3, 6, 3], [3, 6, 3, 3], [6, 3, 3, 3]]
>>> list(multiset_permutations([4,1,1,1]))
[[1, 1, 1, 4], [1, 1, 4, 1], [1, 4, 1, 1], [4, 1, 1, 1]]

因此,在您的情况下,您可以简单地创建所有多集排列的列表:

代码语言:javascript
复制
list(multiset_permutations([a,a,b,a]))
票数 0
EN

Stack Overflow用户

发布于 2018-09-17 09:46:06

运用 itertools.permutations

代码语言:javascript
复制
>>> import itertools
>>> a,b = 1,2
>>> set(itertools.permutations([a,a,b,a]))
{(1, 1, 2, 1), (2, 1, 1, 1), (1, 2, 1, 1), (1, 1, 1, 2)}

或者使用more_itertools.distinct_permutations

代码语言:javascript
复制
>>> import more_itertools
>>> a,b = 1,2
>>> list(more_itertools.distinct_permutations([a,a,b,a]))
[(2, 1, 1, 1), (1, 2, 1, 1), (1, 1, 2, 1), (1, 1, 1, 2)]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002636

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档