Generando listas de palabras con mayúsculas y minúsculas con crujido

-2

Soy nuevo en la crisis y quiero generar una lista de palabras específica pero necesito el código apropiado para ello. Tomemos 478 , 1990 , gmgm y first . Quiero todas las combinaciones de estos dos números y dos palabras sin cambiar el orden de sus caracteres. Sé que necesito usar -p, pero quiero que se consideren mayúsculas y minúsculas también. ¿Cómo puedo hacer eso? Por ejemplo:

4781990gmgmfirst
4781990Gmgmfirst
4781990gmgMfiRst
gmgm478firsT1990
FIRST1990MGmt478
...

¿También puedo hacer crujido generar todas las combinaciones para dos de ellos, luego tres de ellos, y finalmente todas? Por ejemplo:

4781990
1990478
1990first478
gmgm1990478
firstgmgm1990478
...
    
pregunta john 19.01.2017 - 20:15
fuente

1 respuesta

1

No estoy seguro si crunch es capaz de eso. ¿Por qué no quieres usar un lenguaje de scripting?

Aquí hay una solución de Python:

from itertools import product, permutations


words = ['478', '1990', 'gmgm', 'first']

cases = []
for word in words:
    pr = product(*zip(word, word.upper()))
    cases += [set(map(''.join, pr))]

for perm in permutations(cases):
    for prod in product(*perm):
        print(''.join(prod))
    
respondido por el Arminius 19.01.2017 - 21:02
fuente

Lea otras preguntas en las etiquetas