anagram program in python with code examples

An anagram program in Python allows for the formation of new words or phrases from rearranging and mixing up the letters in a given phrase or word. For instance, the word “listen” can be rearranged to form the word “silent.” An anagram program can be beneficial in the area of cryptography, where messages can be encrypted by rearranging letters in words or phrases.

Python, an open-source, high-level programming language, has several built-in functions and libraries that make it an excellent choice for creating an anagram program. Below is a guide on how to create an anagram program in Python with code examples.

Creating an Anagram Program in Python

Step 1: Collecting User Input

The first step in creating an anagram program is to write code that collects user input. The user input is the word or phrase that they want to turn into an anagram. In Python, we use the “input()” function to collect user input.

For example, the following code prompts the user to enter a word or phrase and stores it in the variable “original_word”:

original_word = input("Enter a word or phrase: ")

Step 2: Splitting the Word or Phrase into Individual Letters

After collecting the user’s input, the next step is to split the word or phrase into individual letters. This can be done using the following code:

word_list = list(original_word)

The “list()” function splits the word or phrase into a list of characters. For example, if the user enters the word “listen,” the list will be ['l', 'i', 's', 't', 'e', 'n'].

Step 3: Generating Possible Anagrams

The third step is to generate possible anagrams from the original word or phrase. This is done using a loop that iterates through the list, generating all possible combinations of letters. The “itertools” library contains functions to generate all possible anagrams.


import itertools

Creating a list from a string

word = 'listen'
word_list = [char for char in word]

Permutations of a string

all_permutations =

Printing all permutations

for item in all_permutations:
new_word = ''.join(item)

Step 4: Comparing Generated Anagrams with a Word List

Once all possible anagrams have been generated, the next step is to compare them against a word list. The word list is a collection of valid words that the anagrams can be compared to. This can be accomplished by importing a word list, such as a “.txt” file, and using a loop to compare the generated anagrams with each word in the list.

For Example:

# function to read words from file and create a set
def read_words():
    with open('word_list.txt') as word_file:
        words = set(word.strip().lower() for word in word_file)
    return words
word_list = read_words()

# list of possible anagrams
generated_anagrams = ['silent', 'enlist', 'tinsel', 'listen', 'isle', 'lets', 'line', 'lens']

# comparing generated anagrams with word list
for word in generated_anagrams:
   if word in word_list:

This code imports words from a file, creates a set of the words, generates possible anagrams, and then compares them to the words in the word list. If the generated anagram is found in the word list, the word is printed.


Creating an anagram program in Python is not as complex as it seems. With the right tools, including the “itertools” library for generating possible anagrams and the ability to compare words to an imported word list, the process of creating an anagram program in Python is simplified. This program can be beneficial in cryptography, creating word puzzles, and other applications that require scrambling words or phrases.

An anagram program in Python can be incredibly powerful and useful in many different applications. Here are a few of the benefits and use cases for anagram programs:

Benefits of Anagram Programs

  1. Enhancing Creativity: Python anagram programs are an excellent way to explore words and phrases in a fun and creative way. You can use this program as a tool to create new words from old ones or discover different meanings behind the words.

  2. Encryption: Anagram programs can be used to encrypt messages by rearranging the letters in a word or phrase. For instance, you can scramble the sentiment of a sentence with an anagram program to create an encrypted message.

  3. Solving puzzles: Anagram programs are also incredibly useful for solving puzzles like crossword puzzles or word games. You can easily find all possible permutations of a word with an anagram program and try to guess the correct one.

Use Cases for Anagram Programs

  1. Cryptography: Cryptographers often utilize anagram programs to encode messages. They use an anagram program to scramble a message or phrase in a manner that only the intended recipient can read and understand. Additionally, the use of anagrams can add a layer of complexity to the encryption, making it more challenging to decrypt.

  2. Language Translation: An anagram program can be used to convert words from one language to another by rearranging the letters of the words. This would be especially useful in languages like English, where there are many homophones or words with similar sounds but different meanings.

  3. Game Development: Anagram programs are useful in game development. They can be used to generate random words or anagrams for people to guess or answer to earn rewards.

In conclusion, anagram programs in Python are powerful tools that can be applied to many different fields. Whether you're a cryptographer, language translator, game developer, or just looking for creative ideas, an anagram program is a great place to start. The ability to rearrange letters in a word or phrase can open up new possibilities and offer a unique perspective on language, coding, and problem-solving.

Popular questions

  1. What is an anagram program in Python?
    An anagram program in Python allows you to rearrange the letters in a word or phrase to create a new set of words or phrases.

  2. What is the purpose of an anagram program?
    An anagram program can be used for various purposes, such as cryptography to generate encrypted messages, solving word puzzles, language translation, and game development.

  3. What is the benefit of using the itertools library in an anagram program?
    The itertools library in Python enables you to generate all possible combinations of a set of characters or a word list. It helps achieve the best performance when generating permutations in Python.

  4. Can you explain how to compare generated anagrams with a word list using Python?
    After generating all possible anagrams, you can import a word list or create a set of words to compare with the generated anagrams. Then, you can use a loop to match the generated anagrams with the words in the word list. If there’s a match between the anagram and the word from the list, you can print the word.

  5. What are some use cases of anagram programs in Python?
    An anagram program in Python can be used to enhance creativity, cryptography, language translation, game development, improving vocabulary, and improving spelling.



Throughout my career, I have held positions ranging from Associate Software Engineer to Principal Engineer and have excelled in high-pressure environments. My passion and enthusiasm for my work drive me to get things done efficiently and effectively. I have a balanced mindset towards software development and testing, with a focus on design and underlying technologies. My experience in software development spans all aspects, including requirements gathering, design, coding, testing, and infrastructure. I specialize in developing distributed systems, web services, high-volume web applications, and ensuring scalability and availability using Amazon Web Services (EC2, ELBs, autoscaling, SimpleDB, SNS, SQS). Currently, I am focused on honing my skills in algorithms, data structures, and fast prototyping to develop and implement proof of concepts. Additionally, I possess good knowledge of analytics and have experience in implementing SiteCatalyst. As an open-source contributor, I am dedicated to contributing to the community and staying up-to-date with the latest technologies and industry trends.
Posts created 2004

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top