Python程序从三个数字打印所有可能的组合
给定 3 个数字 a、b 和 c。任务是从这些数字中找到所有可能的组合。
例子:
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
方法1:蛮力或幼稚的方法
天真的方法是从 0 到 3 运行 3 个循环,如果索引彼此不相等,则打印列表中的所有数字。
例子:
Python3
# Python program to print all
# the possible combinations
def comb(L):
for i in range(3):
for j in range(3):
for k in range(3):
# check if the indexes are not
# same
if (i!=j and j!=k and i!=k):
print(L[i], L[j], L[k])
# Driver Code
comb([1, 2, 3])
Python3
# Python program to print all
# the possible combinations
from itertools import permutations
# Get all combination of [1, 2, 3]
# of length 3
comb = permutations([1, 2, 3], 3)
for i in comb:
print(i)
输出:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
方法 2:使用 itertools.permutations()
此方法将列表作为输入,并返回包含列表形式的所有排列的元组对象列表。
例子:
Python3
# Python program to print all
# the possible combinations
from itertools import permutations
# Get all combination of [1, 2, 3]
# of length 3
comb = permutations([1, 2, 3], 3)
for i in comb:
print(i)
输出:
(1, 2, 3)
(1, 3, 2)
(2, 1, 3)
(2, 3, 1)
(3, 1, 2)
(3, 2, 1)