[Tutor] Generating random alphanumeric codes

Japhy Bartlett japhy at pearachute.com
Wed Jun 27 16:05:12 CEST 2012


I've always liked uuid4

>>> from uuid import uuid4
>>> str(uuid4())[:4]
'0ca6'


On Tue, Jun 26, 2012 at 3:47 PM, Dave Angel <d at davea.name> wrote:

> On 06/26/2012 03:47 PM, Martin A. Brown wrote:
> > Hello,
> >
> >  : Would anyone have tips on how to generate random 4-digit
> >  : alphanumeric codes in python? Also, how does one calculate the
> >  : number of possible combinations?
> >
> > Here are some thoughts that come to my mind:
> >
> >   import string
> >   import random
> >
> >   # -- technique #1, using random.choice
> >   print ''.join([random.choice(string.lowercase) for x in range(4)])
> >
> >   # -- technique #2, using random.shuffle
> >   t = [ x for x in string.lowercase ]
> >   random.shuffle(t)
> >   ''.join(t[0:4])
> >
> >   # -- technique #3, using random.sample
> >   ''.join(random.sample(string.lowercase,4))
> >
> > I would be quite surprised if there were not more efficient ways of
> > accomplishing this.
> >
> > -Martin
> >
> Two problems that I see:
>
> string.lowercase includes the lowercase letters, but not the digits.
>
> Your methods 2 and 3 produce different results than method1.  The OP
> never specified which he wanted, but the distinction can well be important.
>
> Likewise his query about how many possibilities there are depends on the
> same question:
>     Are duplicates permitted between the four characters in any given
> answer.
>
>
>
>
> --
>
> DaveA
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/tutor/attachments/20120627/62f55bde/attachment-0001.html>


More information about the Tutor mailing list