Given 3 digits a, b, and c. The task is to find all the possible combinations from these digits.
Examples:
Input: [1, 2, 3]
Output:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
Input: [0, 9, 5]
Output:
0 9 5
0 5 9
9 0 5
9 5 0
5 0 9
5 9 0
Method 1: Brute force or Naive approach
The naive approach is to run 3 loops from 0 to 3 and print all the numbers from the list if the indexes are not equal to each other.
Example:
Python3
def comb(L):
for i in range ( 3 ):
for j in range ( 3 ):
for k in range ( 3 ):
if (i! = j and j! = k and i! = k):
print (L[i], L[j], L[k])
comb([ 1 , 2 , 3 ])
|
Output:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
Method 2: Using itertools.permutations()
This method takes a list as an input and returns an object list of tuples that contain all permutation in a list form.
Example:
Python3
from itertools import permutations
comb = permutations([ 1 , 2 , 3 ], 3 )
for i in comb:
print (i)
|
Output:
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)