def PermutationEnumerator(items, n=None):
if n is None:
n = len(items)
for i in range(len(items)):
v = items[i:i+1]
if n == 1:
yield v
else:
rest = items[:i] + items[i+1:]
for p in PermutationEnumerator(rest, n-1):
yield v + p
def CombinationEnumerator(items, n=None):
if n is None:
n = len(items)
for i in range(len(items)):
v = items[i:i+1]
if n == 1:
yield v
else:
rest = items[i+1:]
for c in CombinationEnumerator(rest, n-1):
yield v + c
if __name__ == "__main__" :
items = [ 'a', 'b', 'c','d','e']
for selection in range(1, len(items)) :
enum = CombinationEnumerator(items, selection)
for i in enum :
print i
print items
简单明了的Python 排列组合功能
最新推荐文章于 2023-06-05 10:43:41 发布