python-排列组合序列

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

【练习要求】请给出源代码程序和运行测试结果,源代码程序要求添加必要的注释。 【输入格式】在第一行中输入整数n和整数m的值,数据之间以空格为间隔。 在第二行中输入n个不同字母,数据之间以空格为间隔 【输出格式】首先输出所有的排列数列,每种情况一行,字母间以空格为间隔; 再者首先输出所有的组合数列,每种情况一行,在同一行中以字母增序顺序显示,字母间以空格为间隔。 【输入样例】3 2 a s d 【输出样例】Permutation: a d d a a s s a d s s d Combination: a d a s d s

代码:

复制代码
import itertools

a = input("请输入整数n和整数m的值:")
a1 = a.split(" ")
for i in a1[::]:
    if i == '':
        a1.remove(i)

while True:
    b = input("请输入{}个字母:".format(a1[0]))
    b1 = b.split(" ")
    for i in b1[::]:
        if i == '':
            b1.remove(i)
    if len(b1) != 3:
        continue
    else:
        break
iter_perm = itertools.permutations(b1, int(a1[1]))
iter_comb = itertools.combinations(b1, int(a1[1]))
print("Permutation:")
for i in iter_perm:
    print(" ".join(i))
print("Combination:")
for i in iter_comb:
    print(" ".join(sorted(i)))
复制代码

输出结果:

 

posted @   睡觉不困  阅读(296)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2021-03-09 每日学习
点击右上角即可分享
微信分享提示