Python program to find all the Combinations in the list with the given condition
Last Updated :
24 Aug, 2022
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
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
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)
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)
Please Login to comment...