Random String Generation with Upper Case Letters and Digits in Python

In programming languages like Python, the “Strings” are referred to as the sequence/series of characters. Strings come under the category of immutable objects which implies that the strings that are created once can not be changed. The characters in the string are placed at a specified index and can be accessed when required. Various applications of Strings include storing data, declaring name, address, etc. The random strings in Python can also be declared/generated using different functions.

In this write-up, we will implement several functions and modules to generate a random string using uppercase letters and digits in Python.

Random String Generation With Uppercase Letters and Digits in Python

The random strings in Python can be generated using the random and string modules respectively. To do that, the length of the string to be generated in the random order must be defined. The next step involves the application of several built-in methods to generate the strings with uppercase letters and digits in random order. 

Below are different ways which generate the strings in random order.

  1. Random String Generation Using For loop with random.choice()
  2. Random String Generation Using random.choices() Function
  3. Random String Generation Using Secrets Module
  4. Random String Generation Using the random.sample() Function

Method 1: Random String Generation Using for Loop and random.choice()

The for loop can be implemented along with “random.choice()” to generate a random string in Python. Below is the code implementation for random string generation having upper-case letters and digits.

# Import the required modules of Python
import random
import string
#Declare the function
def password_gen(length):

return_str1 = ""
# generating a string containing Uppercase and 0-9
input1 = string.ascii_uppercase + '0123456789'
      # generating random strings using for loop
for i in range(length):
return_str1 += random.choice(input1)
# print result
print("The Random String is : " + str(return_str1))
# function call
password_gen(8)

In the above Python code:

  • The required modules are imported.
  • A function is created as “password_gen”.
  • A string “return_str1” is declared as empty.
  • The “input1” is declared using the “string.ascii_uppercase” and digits.
  • The next step involves the implementation of a for loop to return the combination of strings and digits.
  • The password_gen(8) in the last step generates a sequence of 8 random characters and digits.
  • The print() function prints the output.

Output

The output below prints the random string. It is to keep in mind that since it is a random generator, the strings are printed in a different order every time the code is executed.

Method 2: Random String Generation Using random.choices()

The random.choices() function is implemented which returns a list that contains multiple random characters that are implemented below.

import random
import string

return_str1= ""
# Initializing the size of the string
N=8
# use random.choices() to return the string
return_str1= ''.join(random.choices(string.ascii_uppercase + string.digits, k=N))
# print result
print("The Random String is:" + str(return_str1))

In the above code,

  • The modules are imported.
  • The length of the random string is declared as 8.
  • The random.choices() function chooses the characters randomly and prints the string using string.ascii_uppercase and string.digits.
  • The strings are combined using the join() method of Python. 
  • The print() function is utilized to get the desired results printed.

Output

The output below prints a random string which varies each time, the code is executed and random strings appear after every execution.

Method 3: Random String Generation Using secrets.choice()

The secrets.choice() function in Python returns a random element from the non-empty sequence to provide a basic security level. The below code imports the secrets module to generate random strings with the combination of uppercase strings and digits respectively. 

import random
import string
import secrets
return_str1= ""
# initializing the size of the string
N=8
# use secret.choices() to return the string
return_str1= ''.join(secrets.choice(string.ascii_uppercase + string.digits)
                    for i in range(N))
# print result
print("The Random String is:" + str(return_str1))

In the above code, 

  • The required modules like “random”, “string”, and “secrets” are imported. 
  • In the next step the secrets.choice() function creates a random string with ascii_uppercase and digits in Python.

Output

In the output, the random string is generated with digits and uppercase letters.

Method 4: Random String Generation Using random.sample()

The random.sample() is a function that uses a selection of random characters declared as “k”. It is basically the desired length of the string to be generated/created randomly.

import random
import string
import secrets

return_str1= ""
# initializing the size of the string
N=8
c = string.ascii_uppercase + string.digits
# random.sample() to get the random string
output = ''.join(random.sample(c, k=N))
# print the result
print("The Random String is:", output)

In this code block, 

  • The random.sample(c, k=N), takes the string.ascii_uppercase and string.digits along with the length of the random string. As a result, it creates/generates a random string of digits and uppercase alphabets.
  • The join() method is used to combine all the randomly generated digits and strings.

Output

In the output below, the random string 0TW84J27 is generated and this output may change when the code is executed every time.

That’s all about random string generation with digits and uppercase letters.

Conclusion

The random strings in Python with upper case letters and digits can be generated by using functions like “random.choice()”, “random.choices()”, “random.sample()”, and “Secrets” Module. The strings generated using the described methods will be random, and they may vary or change each time you execute the code. In this write-up, we have implemented all these methods with practical examples to generate random strings in Python.