我需要找到给定字符串的所有可能组合,从最小长度到最大长度。
如果我的输入字符串为
对于长度为3:
interface allCombos(string: String, min: Number, max:Number): Array {}
如果我的输入字符串为
'abcde'
,并且我的最小长度为3,则期望的结果是:对于长度为3:
[‘abc’, ‘abd’, ‘abe’, ‘acd’, ..., ‘bcd’, ‘bce’, ..., ‘eda’, ...]
连接长度为4:
[‘abcd’, ‘abdc’, ‘acdb’, ‘acbd’, …etc]
将所有长度最长为max参数的可能组合连接起来。max参数不应该高于输入单词长度。
我开始认为所有可能的组合将是∑(3! + 4! + … + n!)
。但后来我发现我错了,因为对于每个长度子集,整个单词有许多组合(例如6个字母字符串的3个长度组合)。
社区能帮我解决这个问题吗?
解决方案可以是JavaScript、Python甚至伪代码。
编辑
出于知识的缘故。有人能回答我这种情况下描述结果大小的公式吗?我知道这不是∑(3! + 4! + … + n!)
。