首页 > 解决方案 > Python中重复排列的数量?

问题描述

是否有一个函数可以计算 Python 中重复排列的数量?我知道使用 itertools 可以生成它们,但我只想要一种更快的方法来进行计算并避免计算阶乘,我对生成所有可能的排列不感兴趣。

示例:计算由 4 个 As、3 个 Bs、5 个 Cs 组成的可能字符串。

水库= 12!/(4!3!5!)

或在代码中:

from math import factorial
from functools import reduce
rep=[4,3,5]
result= factorial(sum(rep))//reduce(lambda x,y: x*y, map(factorial, rep))

标签: pythonitertools

解决方案


推荐阅读