In this tutorial, I will explain how to shuffle characters in a string using Python. I encountered this issue while developing a gaming application for a word puzzle challenge in the USA. In the game, players are presented with a scrambled version of a word, and they must guess the original word. Let us explore how to shuffle characters in a string using Python.
Shuffle Characters in a String using Python
Python provides various ways to achieve this task. Let us see some important methods.
Read Concatenate String and Float in Python
1. Use random.shuffle()
One simple approach to shuffle a string in Python is to first convert the string to a list of characters, shuffle the list using the random.shuffle() method, and then join the characters back into a string. Here’s an example:
import random
name = "John Smith"
char_list = list(name)
random.shuffle(char_list)
shuffled_name = ''.join(char_list)
print(shuffled_name)Output:
JmiShnohtI have executed the above example code and added the screenshot below.

In this code, we start with a string "John Smith". We convert it to a list of characters using list(name). Then, we use random.shuffle(char_list) to shuffle the characters in place. Finally, we join the shuffled characters back into a string ''.join(char_list) and print the result.
Read How to Find the Largest and Smallest Numbers in Python?
2. Use random.sample()
Another way to shuffle a string in Python is by using the random.sample() function. This function returns a new list containing a random sample of elements from the original sequence. Here’s an example:
import random
name = "Emily Johnson"
shuffled_name = ''.join(random.sample(name, len(name)))
print(shuffled_name)Output:
ilJ ohsyEnmonI have executed the above example code and added the screenshot below.

In this approach, we directly pass the string "Emily Johnson" to random.sample() along with the length of the string using len(name). This ensures that all characters are included in the shuffled result. We then join the shuffled characters into a string using ''.join() and print the shuffled name.
Read How to Check if a Python String Contains a Substring?
3: Use List Comprehension
List comprehension can also be used to shuffle characters by using random.shuffle() a list, or by using custom methods like swapping characters randomly.
import random
# Example string (USA-based name)
name = "Florida"
# Shuffle using list comprehension
name_list = list(name)
random.shuffle(name_list)
shuffled_name = ''.join([char for char in name_list])
print(f"Original name: {name}")
print(f"Shuffled name: {shuffled_name}")
Output:
Original name: Florida
Shuffled name: ilFdaro
I have executed the above example code and added the screenshot below.

This method uses list comprehension to iterate over the shuffled list (name_list) and combine the shuffled characters back into a string.
Read How to Reverse a String in Python?
Conclusion
In this tutorial, I have explained how to shuffle characters in a string using Python. I cover some important methods like using the random.shuffle() function and random.sample() function and list comprehension.
You may also like to read:
- Find the First Number in a String in Python
- How to Compare Strings in Python?
- How to Create a String of N Characters in Python?

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.