Python – All replacement combination from other list

When you need to generate all possible combinations by replacing elements from one list with elements from another, Python's itertools.combinations method provides an efficient solution. This technique creates combinations where some original elements are replaced with elements from a replacement list.

Basic Example

Here's how to generate replacement combinations using itertools.combinations ?

from itertools import combinations

original_list = [54, 98, 11]
print("Original list:")
print(original_list)

replace_list = [8, 10]
print("Replacement list:")
print(replace_list)

# Combine both lists and generate combinations
combined_list = original_list + replace_list
result = list(combinations(combined_list, len(original_list)))

print("All replacement combinations:")
for combo in result:
    print(combo)
Original list:
[54, 98, 11]
Replacement list:
[8, 10]
All replacement combinations:
(54, 98, 11)
(54, 98, 8)
(54, 98, 10)
(54, 11, 8)
(54, 11, 10)
(54, 8, 10)
(98, 11, 8)
(98, 11, 10)
(98, 8, 10)
(11, 8, 10)

How It Works

The process involves three key steps ?

  1. Concatenation: Combine the original list with the replacement list using + operator
  2. Combination Generation: Use combinations() to generate all possible combinations of the specified length
  3. Length Preservation: Maintain the same length as the original list using len(original_list)

Alternative Implementation

You can also filter combinations to show only those with replacements ?

from itertools import combinations

original_list = [54, 98, 11]
replace_list = [8, 10]

# Generate all combinations
combined_list = original_list + replace_list
all_combinations = list(combinations(combined_list, len(original_list)))

# Filter to show only combinations with at least one replacement
replacement_combos = [combo for combo in all_combinations 
                     if any(item in replace_list for item in combo)]

print("Combinations with replacements only:")
for combo in replacement_combos:
    print(combo)
Combinations with replacements only:
(54, 98, 8)
(54, 98, 10)
(54, 11, 8)
(54, 11, 10)
(54, 8, 10)
(98, 11, 8)
(98, 11, 10)
(98, 8, 10)
(11, 8, 10)

Practical Use Cases

This technique is useful for ?

  • Configuration Testing: Testing different parameter combinations
  • Menu Planning: Creating meal combinations with ingredient substitutions
  • Resource Allocation: Exploring different resource assignment options

Conclusion

The itertools.combinations method efficiently generates replacement combinations by concatenating lists and preserving the original length. This approach provides all possible ways to substitute elements from one list with elements from another.

Updated on: 2026-03-26T02:24:05+05:30

334 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements