Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App
geeksforgeeks
Browser
Continue

Related Articles

Python program to find all the Combinations in the list with the given condition

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

Given a list with some elements being a list of optional elements. The task is to find all the possible combinations from all options.

Examples:

Input: test_list = [1,2,3] 
Output
 [1], [1, 2], [1, 2, 3], [1, 3]
 [2], [2, 3], [3]

Example 1: Get all possible combinations of a list’s elements using combinations

Python3




from itertools import combinations
# initializing list
test_list = ["GFG", [5, 4], "is",
            ["best", "good", "better", "average"]]
idx=0
temp = combinations(test_list, 2)
for i in list(temp):
    idx = idx+1
    print ("Combination", idx, ": ", i)

Output:

Combination 1 :  ('GFG', [5, 4])
Combination 2 :  ('GFG', 'is')
Combination 3 :  ('GFG', ['best', 'good', 'better', 'average'])
Combination 4 :  ([5, 4], 'is')
Combination 5 :  ([5, 4], ['best', 'good', 'better', 'average'])
Combination 6 :  ('is', ['best', 'good', 'better', 'average'])

Example 2: Get all possible combinations of a list’s elements using combinations_with_replacement

Python3




from itertools import combinations_with_replacement
 
# initializing list
test_list = ["GFG", [5, 4], "is",
            ["best", "good", "better", "average"]]
idx=0
temp = combinations_with_replacement(test_list, 2)
for i in list(temp):
    idx = idx+1
    print ("Combination", idx, ": ", i)

Output:

Combination 1 :  ('GFG', 'GFG')
Combination 2 :  ('GFG', [5, 4])
Combination 3 :  ('GFG', 'is')
Combination 4 :  ('GFG', ['best', 'good', 'better', 'average'])
Combination 5 :  ([5, 4], [5, 4])
Combination 6 :  ([5, 4], 'is')
Combination 7 :  ([5, 4], ['best', 'good', 'better', 'average'])
Combination 8 :  ('is', 'is')
Combination 9 :  ('is', ['best', 'good', 'better', 'average'])
Combination 10 :  (['best', 'good', 'better', 'average'], ['best', 'good', 'better', 'average'])

Example 3: Get all possible combinations of a list’s elements using loop

In this, we use a nested loop to get index wise combinations from each nested option list, and then the outer loop is used to get default values in all combinations.

Python3




def combinations(iterable, r):
    pool = tuple(iterable)
    n = len(pool)
    if r > n:
        return
    indx = list(range(r))
    yield tuple(pool[i] for i in indx)
    while True:
        for i in reversed(range(r)):
            if indx[i] != i + n - r:
                break
        else:
            return
        indx[i] += 1
        for j in range(i+1, r):
            indx[j] = indx[j-1] + 1
        yield tuple(pool[i] for i in indx)
 
 
x = [2, 3, 1, 6, 4, 7]
for i in combinations(x, 2):
    print(i)

Output:

(2, 3)
(2, 1)
(2, 6)
(2, 4)
(2, 7)
(3, 1)
(3, 6)
(3, 4)
(3, 7)
(1, 6)
(1, 4)
(1, 7)
(6, 4)
(6, 7)
(4, 7)

Example 4: Get all possible combinations of a list’s elements using recursion

Python3




import copy
 
def combinations(target, data):
 
    for i in range(len(data)):
 
        new_lis = copy.copy(target)
        new_data = copy.copy(data)
#         print(new_lis, new_data)
        new_lis.append(data[i])
        new_data = data[i+1:]
 
        print(new_lis)
 
        combinations(new_lis,
                     new_data)
 
 
target = []
data = [1, 2, 3, 4]
 
combinations(target, data)

Output:

(2, 3)
(2, 1)
(2, 6)
(2, 4)
(2, 7)
(3, 1)
(3, 6)
(3, 4)
(3, 7)
(1, 6)
(1, 4)
(1, 7)
(6, 4)
(6, 7)
(4, 7)

My Personal Notes arrow_drop_up
Last Updated : 24 Aug, 2022
Like Article
Save Article
Similar Reads
Related Tutorials