【问题描述】从2017年开始,上海采用"3+3"新高考制度,第一个"3"表示语文、数学和外语("大三门"),这是必考科目,第2个"3"是从历史、地理、政治、物理、化学、生物这6个科目中任选3门报考("小三门")。请编写程序,针对"小三门"科目,计算并列举所有选考科目方案,最后给出所有方案的总个数。
【输入形式】
【输出形式】用print()函数
【样例输入】
【样例输出】
历史 地理 政治
历史 地理 物理
历史 地理 化学
历史 地理 生物
历史 政治 物理
历史 政治 化学
历史 政治 生物
历史 物理 化学
历史 物理 生物
历史 化学 生物
地理 政治 物理
地理 政治 化学
地理 政治 生物
地理 物理 化学
地理 物理 生物
地理 化学 生物
政治 物理 化学
政治 物理 生物
政治 化学 生物
物理 化学 生物
共有以上20种方案
【样例说明】
【评分标准】
python
def gen_combs(s, n):
res = []
for i in range(len(s)):
for j in range(i+1, len(s)):
for k in range(j+1, len(s)):
res.append((s[i], s[j], s[k]))
return res
def print_combs(cbs):
for cb in cbs:
print(' '.join(cb))
def main():
s = ["历史", "地理", "政治", "物理", "化学", "生物"]
n = 3
cbs = gen_combs(s, n)
print_combs(cbs)
print(f"共有以上{len(cbs)}种方案")
main()