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)))
输出结果:


浙公网安备 33010602011771号