Nikhil Verma wrote: > Hi All > > I want to generate a random number of 8 digits which involve 3 number and > 5 digits. > Like this :- > > def random_number(): > # do something > > random_number() > "123abcde" # first 3 numbers and 5 letters after the numbers. > > I am able to generate the random number 8 digit like this:- > > def random_number(): > characters = list(string.ascii_lowercase + string.ascii_uppercase\ > + string.digits) > coll_rand = [] > for i in range(8): > random.shuffle(characters) > coll_rand.append(characters[0]) > return ''.join(coll_rand) > > This generates like this "Kkrgt56r" > > Thanks in advance
If you generalize your random_number() function >>> import random, string >>> def random_code(n=8, chars=string.ascii_lowercase+string.ascii_uppercase+string.digits): ... return "".join(random.choice(chars) for _ in range(n)) ... >>> random_code() 'NgcLhYdR' >>> random_code() 'j9gafcHh' >>> random_code(chars="123ABC") 'C311BA31' >>> random_code(n=4) 'MAsV' you can use it as a building block quite easily: >>> def three_five(): ... return random_code(3, string.digits) + random_code(5, string.ascii_lowercase + string.ascii_uppercase) ... >>> three_five() '656xEWmd' >>> three_five() '589XqZcI' >>> three_five() '168iOOIM' -- http://mail.python.org/mailman/listinfo/python-list