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))

