# Ayuda con un código

**URL:** <https://pyar.discourse.group/t/ayuda-con-un-codigo/753>\
**Category:** Sin categoría\
**Created:** [7 Noviembre, 2021 16:26 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753 "2021-11-07T16:26:56Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![cesar085](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/cesar085/32/325_2.png) [@cesar085](https://pyar.discourse.group/u/cesar085)\
**Post date:** [7 Noviembre, 2021 16:26 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/1 "2021-11-07T16:26:56Z")

</div>

Hola a todos espero me puedan ayudar con este problema, tengo el siguiente código:

from itertools import product

frase = {‘1’ : [’ w’, ’ x’, ’ y’, ’ z’], ‘2’ : [’ w’, ’ x’, ’ y’, ’ z’], ‘3’ : [’ w’, ’ x’, ’ y’, ’ z’]}

for c in product(\*[frase[x] for x in sorted(frase.keys())]):  
print(’’.join(c))

Y este es el resultado:

w w w  
w w x  
w w y  
w w z  
w x w  
w x x  
w x y  
w x z  
w y w  
w y x  
w y y  
w y z  
w z w  
w z x  
w z y  
w z z  
x w w  
x w x  
x w y  
x w z  
x x w  
x x x  
x x y  
x x z  
x y w  
x y x  
x y y  
x y z  
x z w  
x z x  
x z y  
x z z  
y w w  
y w x  
y w y  
y w z  
y x w  
y x x  
y x y  
y x z  
y y w  
y y x  
y y y  
y y z  
y z w  
y z x  
y z y  
y z z  
z w w  
z w x  
z w y  
z w z  
z x w  
z x x  
z x y  
z x z  
z y w  
z y x  
z y y  
z y z  
z z w  
z z x  
z z y  
z z z

Quisiera que me imprima solo las que no tienen las letras repetidas, les agradecería mucho su ayuda y gracias de antemano.

---

<div class="post-metadata">

**Author:** ![ccanepa](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/ccanepa/32/30_2.png) [@ccanepa](https://pyar.discourse.group/u/ccanepa)\
**Post date:** [7 Noviembre, 2021 18:22 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/2 "2021-11-07T18:22:38Z")

</div>

Que tal en el mismo modulo

---

<div class="post-metadata">

**Author:** ![ccanepa](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/ccanepa/32/30_2.png) [@ccanepa](https://pyar.discourse.group/u/ccanepa)\
**Post date:** [7 Noviembre, 2021 18:27 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/3 "2021-11-07T18:27:30Z")

</div>

umhhh. La respuesta anterior hecha por correo no llego bien, imagino que algun problema de discourse. La mando directa desde pyar.discourse

Que tal en el mismo modulo

| [`permutations()`](https://docs.python.org/3/library/itertools.html#itertools.permutations) | p[, r] | r-length tuples, all possible orderings, no repeated elements |
| --- | --- | --- |
| [`combinations()`](https://docs.python.org/3/library/itertools.html#itertools.combinations) | p, r | r-length tuples, in sorted order, no repeated elements |

---

<div class="post-metadata">

**Author:** ![cesar085](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/cesar085/32/325_2.png) [@cesar085](https://pyar.discourse.group/u/cesar085)\
**Post date:** [7 Noviembre, 2021 19:27 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/4 "2021-11-07T19:27:57Z")

</div>

> [@ccanepa](#):
>
> |[`permutations()`](https://docs.python.org/3/library/itertools.html#itertools.permutations)|p[, r]|r-length tuples, all possible orderings, no repeated elements

Eso iria dentro del ciclo o donde lo pondria?, Es que estoy aprendiendo.

---

<div class="post-metadata">

**Author:** ![ccanepa](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/ccanepa/32/30_2.png) [@ccanepa](https://pyar.discourse.group/u/ccanepa)\
**Post date:** [7 Noviembre, 2021 20:00 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/5 "2021-11-07T20:00:46Z")

</div>

```python
import itertools

base = [' w', ' x', ' y', ' z']
for e in itertools.permutations(base, 3):
    print(''.join(e))

```

Salida:

```auto
>>> 
============== RESTART: D:\dev\sequencers\shift_register4\comb.py ==============
 w x y
 w x z
 w y x
 w y z
 w z x
 w z y
 x w y
 x w z
 x y w
 x y z
 x z w
 x z y
 y w x
 y w z
 y x w
 y x z
 y z w
 y z x
 z w x
 z w y
 z x w
 z x y
 z y w
 z y x
>>> 

```

---

<div class="post-metadata">

**Author:** ![cesar085](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/cesar085/32/325_2.png) [@cesar085](https://pyar.discourse.group/u/cesar085)\
**Post date:** [7 Noviembre, 2021 20:22 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/6 "2021-11-07T20:22:06Z")

</div>

claro pero yo lo que quiero es crear combinaciones de 4

import itertools

frase1 = [’ w’, ’ x’, ’ y’, ’ z’, ’ w’, ’ x’, ’ y’, ’ z’]

combinations = itertools.combinations(frase1, 4)

for c in combinations:

```
print (c)

```

yo repito 2 veces las letras

y me hace las combinaciones de 4 pero igual me repite las letras, alguien me dijo una ves que usando set() se podia hacer

---

<div class="post-metadata">

**Author:** ![ccanepa](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/ccanepa/32/30_2.png) [@ccanepa](https://pyar.discourse.group/u/ccanepa)\
**Post date:** [7 Noviembre, 2021 20:52 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/7 "2021-11-07T20:52:06Z")

</div>

> quiero 4

itertools.permutations(base, 3) → itertools.permutations(base, 4) ?

Tu ejemplo repite las letras porque la lista de elementos que le pasas para combinar tiene repeticiones.

Veo que ahora usas combinaciones y no permutaciones, es realmente lo que queres?

Si queres eliminar de una lista repeticiones podes convertir la lista a set, para que elimine duplicados y si precisas lista convertir el set en lista

```python
mi_lista = [1,2,3,1,2,3]
como_conjunto = set(mi_lista)
# puedo iterar directamente sobre el conjunto
for e in como_conjunto:
    print(e)
# o puedo convertir el conjunto en lista si hiciera falta
lista_sin_duplicados = list(como_conjunto)

```

---

<div class="post-metadata">

**Author:** ![cesar085](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/cesar085/32/325_2.png) [@cesar085](https://pyar.discourse.group/u/cesar085)\
**Post date:** [7 Noviembre, 2021 21:13 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/8 "2021-11-07T21:13:38Z")

</div>

claro pero así no combina nada, solo muestra  
1  
2  
3

se podrá con un condicional donde se diga que si en la lista ya esta el numero o la letra no lo coloque entonces cuando comience a combina no pone ese valor?

---

<div class="post-metadata">

**Author:** ![ccanepa](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/ccanepa/32/30_2.png) [@ccanepa](https://pyar.discourse.group/u/ccanepa)\
**Post date:** [7 Noviembre, 2021 21:20 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/9 "2021-11-07T21:20:17Z")

</div>

papu, vos tambien tenes que trabajar, sino vos no aprendes nada.

- escribite para vos que es lo que queres hacer, en terminos de entradas y salidas, no en codigo

- pensa que pasos intermedios podes hacer para transformar la entrada en la salida, nuevamente no en codigo, solo en palabras

- trata de pasar cada etapa a codigo, si te trabas pedis ayuda diciendo que queres hacer, que hiciste y en donde falla.

---

<div class="post-metadata">

**Author:** ![cesar085](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/cesar085/32/325_2.png) [@cesar085](https://pyar.discourse.group/u/cesar085)\
**Post date:** [7 Noviembre, 2021 21:39 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/10 "2021-11-07T21:39:11Z")

</div>

es que yo hago las combinaciones, pero se repiten las cosas y lo que no quiero es que se repitan, ahí es donde me trabó

---

<div class="post-metadata">

**Author:** ![ccanepa](https://yyz2.discourse-cdn.com/free1/user_avatar/pyar.discourse.group/ccanepa/32/30_2.png) [@ccanepa](https://pyar.discourse.group/u/ccanepa)\
**Post date:** [7 Noviembre, 2021 21:57 UTC](https://pyar.discourse.group/t/ayuda-con-un-codigo/753/11 "2021-11-07T21:57:22Z")

</div>

Si no queres que se repitan no les mandes elementos repetidos. Tanto combinations como permutations asumen que los elementos que queres combinar son unicos.

En tu ultimo ejemplo ‘frase1’ tiene elementos repetidos.
