Todas as combinações possíveis de uma determinada sequência
Preciso encontrar todas as combinações possíveis de uma determinada string, de um comprimento mínimo para um comprimento máximo.
interface allCombos(string: String, min: Number, max:Number): Array {}
Portanto, se minha string de entrada for‘abcde’
, e meu comprimento mínimo é 3, desejo que o resultado seja:
Para comprimento 3:
[‘abc’, ‘abd’, ‘abe’, ‘acd’, ..., ‘bcd’, ‘bce’, ..., ‘eda’, ...]
Concatenado com comprimento 4:
[‘abcd’, ‘abdc’, ‘acdb’, ‘acbd’, …etc]
Concatenado com todas as combinações possíveis com comprimento até o parâmetro max. O que não deve ser maior que o comprimento da palavra de entrada.
Comecei a pensar que todas as combinações possíveis seriam∑(3! + 4! + … + n!)
. Mas vi que estava errado porque, para cada subconjunto de comprimento, existem muitas combinações para o mundo inteiro (por exemplo, combinações de 3 comprimentos de uma sequência de 6 letras).
A comunidade pode me ajudar com esse problema?
A solução pode estar emJavaScript
, Python
ou mesmo pseudo-código.
Editar
Pelo bem do conhecimento. Alguém poderia me responder, a fórmula que descreve o tamanho do resultado neste caso? Eu sei que não é∑(3! + 4! + … + n!)
.