Python 具有固定长度的元组的子集

Python 具有固定长度的元组的子集,python,python-3.x,Python,Python 3.x,我希望有一个函数,子集((“a”、“b”、“C”、“D”),3),它给出以下输出: ("A","b","C") ("A","b","D") ("A","C","D") ("b","C","D") 在python 3中如何实现这一点?itertools.combinations函数是为此明确构建的: >>> from itertools import combinations >>> list(combinations(("A","b","C","D"), 3

我希望有一个函数,
子集((“a”、“b”、“C”、“D”),3)
,它给出以下输出:

("A","b","C")
("A","b","D")
("A","C","D")
("b","C","D")

在python 3中如何实现这一点?

itertools.combinations函数是为此明确构建的:

>>> from itertools import combinations
>>> list(combinations(("A","b","C","D"), 3))
[('A', 'b', 'C'), ('A', 'b', 'D'), ('A', 'C', 'D'), ('b', 'C', 'D')]
>>>
从:

itertools.组合(iterable,r)

从输入
iterable
返回元素的
r
长度子序列


技术上
def子集(元素,大小):返回'\n'.join(列表(itertools.combinations(元素,大小))
:)@AdamSmith可能有意简洁。公平地说,这不是代表别人写代码。@AlexThornton我真的很惊讶,在为他写代码之前没有人问他预算是多少:)@AdamSmith-这里的重要部分是向OP展示如何生成他想要的组合。在那之后,将代码放入函数
子集
中就很简单了。此外,输出应该是什么也有点不清楚。它是一根绳子吗?或者仅仅是他想要的组合的一个例子?由于模棱两可,我决定将
子集的定义留给OP.)