📌  相关文章
📜  Python程序从三个数字打印所有可能的组合

📅  最后修改于: 2022-05-13 01:55:50.454000             🧑  作者: Mango

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)