Python 如何对一组字符串按照不同位置生成

比如 abcd

我要生成 abcd dcab bcda adcb cdab badc dabc chad

好像没了吧

这样子用 python 有什么好的算法吗


Python 如何对一组字符串按照不同位置生成
9 回复

itertools.permutations


我无法理解你的问题

from itertools import permutations


谢谢谢谢,就是他

这应该是高中数学上排列组合。可以搜得到相关库。

如果字符串里面字符不重复,那应该是 n!的种,你这个应该是 24 种。

如果有重复的就比较麻烦了,花时间算了。


有什么方法能够计算他能够生成多少个数量?

全排列:
def p(n,m):


全排列:
from math import gamma
def p(n,m):
return gamma(n)/gamma(m)

from scipy.special import loggamma
import numpy as np
def p(n, m):
return np.exp(loggamma(n+1)-loggamma(m+1))

回到顶部