String reproduzierbar mischen

Manchmal kann es nötig sein, dass man einen String beliebig mischt. Über random.shuffle ist das sehr einfach und schnell möglich:

   1 def random_ascii(text, seed):
   2     from random import Random
   3     rnd = Random(seed)
   4     l = list(text)
   5     rnd.shuffle(l)
   6     return ''.join(l)
   7 
   8 print random_ascii('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ', '1234')

Ergebnis: 3KUJL9I2YHGO5C0FZNVTXQRBMEDW867A4PS1

Erwähnenswert ist, das random.shuffle reproduzierbar den String durchwürfelt. Das hängt von dem seed Wert ab. Um einen recht zufälligen seed zu erhalten kann man z.B. time.clock() nehmen.


Entnommen aus RandomAscii - Durchwürfelt einen kleinen Text....

String reproduzierbar mischen (last edited 2009-06-17 16:14:22 by localhost)