比如 abcd
我要生成 abcd dcab bcda adcb cdab badc dabc chad
好像没了吧
这样子用 python 有什么好的算法吗
1
westoy 2018 年 12 月 8 日
itertools.permutations
|
2
crab 2018 年 12 月 8 日
from itertools import permutations
|
3
iPhonePKAndroid OP |
4
mainlong 2018 年 12 月 8 日 via Android
这应该是高中数学上排列组合。可以搜得到相关库。
如果字符串里面字符不重复,那应该是 n!的种,你这个应该是 24 种。 如果有重复的就比较麻烦了,花时间算了。 |
5
iPhonePKAndroid OP |
6
necomancer 2018 年 12 月 11 日
@iPhonePKAndroid 全排列:
def p(n,m): |
7
necomancer 2018 年 12 月 11 日
|
8
necomancer 2018 年 12 月 11 日
from scipy.special import loggamma
import numpy as np def p(n, m): return np.exp(loggamma(n+1)-loggamma(m+1)) |