Python 中的排列和组合

17 Mar 2025 | 4 分钟阅读

在本教程中,我们将学习如何使用 Python 获取给定数据的排列和组合。我们将使用 Python 内置包来查找给定数字的排列和组合。

排列和组合是数学中的一个重要部分。 Python 提供了 itertools 库,其中包含用于计算排列和组合的内置函数。

导入所需库

要计算排列和组合,我们需要导入 itertools 库。我们可以使用下面的命令导入它。

上面的语句将导入 itertools 库,并为其函数形成一个路径。

现在,我们需要创建作为输入的序列列表。此输入列表将返回包含排列和组合的元组。我们还可以设置排列和组合的长度。

排列

排列是集合的排列,其中顺序很重要。 Python itertools 模块提供内置的 permutation() 方法来查找排列。让我们理解下面的例子。

示例 -

输出


('1', '2', '3')
('1', '3', '2')
('2', '1', '3')
('2', '3', '1')
('3', '1', '2')
('3', '2', '1')

在上面的代码中,我们导入了 itertools 模块。我们调用了 permutation() 方法,该方法将字符串作为参数并提供一个 itertools 对象。必须使用 for 循环来获取每次排列。

让我们取两组排列。

示例 - 2

输出

('A', 'B')
('A', 'C')
('B', 'C')

示例 - 3

输出

(1, 2, 3, 4)
(1, 2, 4, 3)
(1, 3, 2, 4)
(1, 3, 4, 2)
(1, 4, 2, 3)
(1, 4, 3, 2)
(2, 1, 3, 4)
(2, 1, 4, 3)
(2, 3, 1, 4)
(2, 3, 4, 1)
(2, 4, 1, 3)
(2, 4, 3, 1)
(3, 1, 2, 4)
(3, 1, 4, 2)
(3, 2, 1, 4)
(3, 2, 4, 1)
(3, 4, 1, 2)
(3, 4, 2, 1)
(4, 1, 2, 3)
(4, 1, 3, 2)
(4, 2, 1, 3)
(4, 2, 3, 1)
(4, 3, 1, 2)
(4, 3, 2, 1)

在上面的代码中,我们获得了多个整数的组合。

固定长度的排列

我们可以计算固定长度集合的排列,其中我们只取每个元素排列的指定数量。让我们理解下面的例子。

示例 -

输出

('H', 'e')
('H', 'l')
('H', 'l')
('H', 'o')
('e', 'H')
('e', 'l')
('e', 'l')
('e', 'o')
('l', 'H')
('l', 'e')
('l', 'l')
('l', 'o')
('l', 'H')
('l', 'e')
('l', 'l')
('l', 'o')
('o', 'H')
('o', 'e')
('o', 'l')
('o', 'l')

在上面的代码中,我们通过将长度设置为二来计算固定排列。

字符串的组合

组合是元素的集合,其中顺序无关紧要。 Python itertools 模块提供 combination() 方法来计算给定数据的组合。我们可以计算字符串的组合。让我们理解下面的例子。

示例 -

输出

('A', 'B')
('A', 'C')
('B', 'C')

带替换的组合

itertools 模块包含另一个名为 combination_with_replacement() 的方法,该方法会考虑数字本身的组合。让我们理解它的例子。

数字集合的组合

输出

('J', 'J')
('J', 'a')
('J', 'v')
('J', 'a')
('J', 't')
('J', 'p')
 ('J', 'o')
('J', 'i')
('J', 'n')
('J', 't')
('a', 'a')
('a', 'v')
('a', 'a')
('a', 't')
('a', 'p')
('a', 'o')
('a', 'i')
('a', 'n')
('a', 't')
('v', 'v')
('v', 'a')
('v', 't')
('v', 'p')
('v', 'o')
('v', 'i')
('v', 'n')
('v', 't')
('a', 'a')
('a', 't')
('a', 'p')
('a', 'o')
('a', 'i')
('a', 'n')
('a', 't')
('t', 't')
('t', 'p')
('t', 'o')
('t', 'i')
('t', 'n')
('t', 't')
('p', 'p')
('p', 'o')
('p', 'i')
('p', 'n')
('p', 't')
('o', 'o')
('o', 'i')
('o', 'n')
('o', 't')
('i', 'i')
('i', 'n')
('i', 't')
('n', 'n')
('n', 't')
('t', 't')

数字集合的组合

如果给定的输入是排序的,则组合元组将以排序顺序返回。让我们理解下面的例子。

示例 -

输出

(1, 1, 1)
(1, 1, 2)
(1, 1, 3)
(1, 1, 4)
(1, 2, 2)
(1, 2, 3)
(1, 2, 4)
(1, 3, 3)
(1, 3, 4)
(1, 4, 4)
(2, 2, 2)
(2, 2, 3)
(2, 2, 4)
(2, 3, 3)
(2, 3, 4)
(2, 4, 4)
(3, 3, 3)
(3, 3, 4)
(3, 4, 4)
(4, 4, 4)

在本教程中,我们讨论了使用 Python 脚本查找给定数据的排列和组合的 itertools 模块。