All possible concatenations in String List Using Python

All possible concatenations in a string list means to generate every possible combination of strings by concatenating two or more elements from a given list of strings. In this article, we will explore different approaches to find all possible concatenations from a list of strings.

Following are the input-output scenarios for concatenating string lists ?

Example Scenarios

Scenario 1: Two Strings

<strong>Input</strong>: strings = ['TP', 'Tutorix']
<strong>Output</strong>: ['TP', 'Tutorix', 'TPTutorix', 'TutorixTP']

Explanation: When the list contains two strings 'TP' and 'Tutorix', it returns the original strings plus two concatenated combinations: 'TPTutorix' and 'TutorixTP'.

Scenario 2: Three Strings

<strong>Input</strong>: strings = ['AP', 'BQ', 'CR']
<strong>Output</strong>: ['AP', 'BQ', 'CR', 'APBQ', 'APCR', 'BQAP', 'BQCR', 'CRAP', 'CRBQ']

Explanation: When the list contains three strings, it returns the original strings plus six concatenated permutations taking two elements at a time.

Method 1: Using itertools.permutations()

The itertools.permutations() method generates all possible ordered arrangements of elements from an iterable. We can use this to create all 2-element permutations and then concatenate them ?

Syntax

itertools.permutations(iterable, r)

Parameters:

  • iterable: The input list of strings
  • r: Number of elements in each permutation (2 for pairs)

Example

import itertools

def find_all_concatenations(strings):
    # Store the result
    result = []
    
    # Add original strings
    result.extend(strings)
    
    # Add all 2-element permutations
    for pair in itertools.permutations(strings, 2):
        result.append(''.join(pair))
    
    return result

# Test with two strings
strings1 = ['TP', 'Tutorix']
output1 = find_all_concatenations(strings1)
print("Two strings:", output1)

# Test with three strings
strings2 = ['AP', 'BQ', 'CR']
output2 = find_all_concatenations(strings2)
print("Three strings:", output2)
Two strings: ['TP', 'Tutorix', 'TPTutorix', 'TutorixTP']
Three strings: ['AP', 'BQ', 'CR', 'APBQ', 'APCR', 'BQAP', 'BQCR', 'CRAP', 'CRBQ']

Method 2: Using Nested Loop

We can achieve the same result using nested for loops to manually generate all pairs where each string is concatenated with every other string ?

Example

def find_all_concatenations_loop(strings):
    result = []
    
    # Add original strings
    result.extend(strings)
    
    # Generate all pairs using nested loops
    for i in range(len(strings)):
        for j in range(len(strings)):
            if i != j:  # Avoid concatenating a string with itself
                result.append(strings[i] + strings[j])
    
    return result

# Test the function
strings = ['AP', 'BQ', 'CR']
output = find_all_concatenations_loop(strings)
print(output)
['AP', 'BQ', 'CR', 'APBQ', 'APCR', 'BQAP', 'BQCR', 'CRAP', 'CRBQ']

Comparison

Method Readability Performance Best For
itertools.permutations() High Optimized Clean, Pythonic code
Nested Loop Medium Good Learning and customization

Conclusion

Both itertools.permutations() and nested loops can generate all possible string concatenations effectively. The itertools approach is more concise and Pythonic, while nested loops offer more control and clarity for beginners.

Updated on: 2026-03-27T12:35:34+05:30

2K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements