排列组合Python
时间: 2023-11-19 07:54:54 浏览: 133
python排列组合
5星 · 资源好评率100%
排列和组合是数学中的基本概念,而在Python中,可以使用itertools模块来实现排列和组合的操作。其中,combinations函数用于生成元素无序的组合,permutations函数用于生成元素有序的排列。同时,也可以使用深度优先搜索(DFS)算法来实现排列的生成。下面是一些示例代码:
1. 使用combinations函数生成组合:
from itertools import combinations
s = ['1','2','3']
for element in combinations(s,2):
a = ''.join(element)
print(a,end=' ')
# 输出 12 13 23
2. 使用permutations函数生成排列:
from itertools import permutations
s = ['a','b','c']
for element in permutations(s,2):
a = element + element
# 或者这样写: a = ''.join(element)
print(a,end=' ')
# 输出 ab ac ba bc ca cb
3. 使用DFS算法生成排列:
n = int(input())
st = * (n+1)
used = * (n+1)
def dfs(u): # 表示枚举到第几位
if u > n:
for i in range(1,n+1):
print(st[i],end = ' ')
print()
return
for i in range(1,n+1): # 依次枚举每个分支,即当前位置可以填哪些数
if not used[i]:
st[u] = i
used[i] = 1
dfs(u+1)
st[u] = 0
used[i] = 0
dfs(1)
阅读全文