Python itertools Permutationen, wie man wiederkehrende Zeichen

Mögliche Duplikat:
Power Set und kartesischen Produkt von einer Set Python

Mit Python Itertools.permutations () möchte ich die Permutationen mit wiederkehrenden Zeichen erhalten und ausgeben. Für ein Beispiel ist diese Funktion unten und ihre aktuelle Ausgabe.

def perm(n,i): b = 0 while b < n: n= n -1 from itertools import permutations as p file.write('\n'.join([''.join(item) for item in p(i,n)])) perm(4,'0123') 

Die Ausgabe ist:

 012 013 021 023 031 032 102 103 120 123 130 132 201 203 210 213 230 231 301 302 310 312 320 321..... 

Wie bekomme ich eine Ausgabe wie 112 oder 222?

Von dem, was ich verstehe, kombinationen sind nicht ordnungsgemäß, wo Permutationen sind. Was ich suche, findet alle Kombinationen dann jede Permutation für jede Kombination. Ist das möglich?

2 Solutions collect form web for “Python itertools Permutationen, wie man wiederkehrende Zeichen”

Du willst überhaupt keine Permutationen. Sie wollen das kartesische Produkt:

 import itertools def perm(n, seq): for p in itertools.product(seq, repeat=n): file.write("".join(p)) file.write("\n") perm(4, "0123") 

Was Sie scheinen zu suchen ist ein kartesisches Produkt , nicht eine Permutation, die auch von itertools zur Verfügung gestellt wird.

Sie können gut tun, um sich mit den Unterschieden zwischen Permutation, Kombination, Kombination mit Ersatz und kartesischen Produkt zu entscheiden, was funktioniert am besten Ihre Anwendung, aber die Chancen sind, Sie sind auf der Suche nach einem anderen der Optionen.

Python ist die beste Programmiersprache der Welt.