Python – Generate Random String of Specific Length

Generate Random String with Python

A random string may be required for a system generated strong password, or such another scenarios.

Using random module of Python programming, you can generate such strings of specified length and specified character groups.

Step by step process

To generate a random string of specific length, follow these steps.

1. Choose Character Group

Choose the character groups from which you would like to pickup the characters. string class provides following character groups:

  • string.ascii_letters
  • string.ascii_lowercase
  • string.ascii_uppercase
  • string.digits
  • string.hexdigits
  • string.letters
  • string.lowercase
  • string.octdigits
  • string.punctuation
  • string.printable
  • string.uppercase
  • string.whitespace

2. Call random.choice()

Use random.choice() function with all the character groups (appended by + operator) passed as argument.

random.choice(string.ascii_uppercase + string.digits)

random.choice() picks one of the characters from the given string or characters.

3. Repeat picking the characters

Repeat this for N times, N being the length of the random string to be generated.

random.choice(string.ascii_uppercase + string.digits) for _ in range(N)

4. Join the picked characters.

Join all these N characters.

''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(N))


Let us implement all the afore mentioned steps to generate a random string of specific length.

Python Program

import random
import string

def randStr(chars = string.ascii_uppercase + string.digits, N=10):
	return ''.join(random.choice(chars) for _ in range(N))

# default length(=10) random string
# random string of length 7
# random string with characters picked from ascii_lowercase
# random string with characters picked from 'abcdef123456'
Run Code Copy




In this tutorial of Python Examples, we learned how to create a random string of specific length from given set of characters.

Code copied to clipboard successfully 👍