Ich bin auf der Suche nach einem Algorithmus, der mir aus einem Tupel von fortlaufenden Zahlen (zb. 0-999) ohne Wiederholung zufällige Werte liefert.
random.randrange gibt sogar eine zufällige Zahl aus einem Intervall zurück, ohne dies zu konstruieren. Wenn man das Intervall und die Liste jeweils anpasst, kann man damit einen Generator basteln, der zufällige Objekte aus einer Liste ausspuckt:
~~~python import random
foo = "eins zwei drei vier fuenf sechs".split()
def random_elements(li):
li = li[:] # Liste kopieren
while li:
index = random.randrange(len(li)) # Zufälliger Index aus dem Intervall
element = li.pop(index) # Element aus der kopierten Liste entfernen
yield element
for el in random_elements(foo):
print el
Eventuell kannst bei Deinem Programm auch auf den [Listen-Kopier-Trick](http://diveintopython3.org/native-datatypes.html#slicinglists) (`li=li[:]`{:.language-python}) verzichten und Speicher sparen.