python 排列组合序列

题目描述】

用户输入整数n(1<=n<=26)和整数m(m<=n),然后输入n个不同的字母,请编写程序输出在这n个字母中选择m个字母的所有排列序列和组合序列。

【源代码程序】

复制代码
def permutations(letters, m, prefix=[]):

 

    if m == 0:

 

        print(''.join(prefix))

 

        return

 

    for i in range(len(letters)):

 

        permutations(letters[:i] +

letters[i + 1:], m - 1, prefix + [letters[i]])

 

 

 

 

 

def combinations(letters, m, start=0, prefix=[]):

 

    if m == 0:

 

        print(''.join(prefix))

 

        return

 

    for i in range(start, len(letters)):

 

        combinations(letters, m - 1, i + 1,

prefix + [letters[i]])

 

 

 

 

 

n = int(input("请输入字母个数n(1<=n<=26):"))

 

m = int(input("请输入选择的字母个数m(m<=n):"))

 

 

 

letters = []

 

for i in range(n):

 

    letter = input("请输入第{}个字母:".format(i + 1))

 

    letters.append(letter)

 

 

 

 

 

# 调用函数生成排列和组合序列

 

print("排列序列:")

 

permutations(letters, m)

 

print("\n组合序列:")

 

combinations(letters, m)
复制代码

 

【运行测试

 

 

posted on   Daniel350  阅读(10)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示