【发布时间】:2014-06-18 04:39:12
【问题描述】:
我有一个整数列表,a = [0, ..., n]。我想从 a 生成所有可能的 k 元素组合;即 a 与自身 k 次的笛卡尔积。请注意,n 和 k 在运行时都是可变的,因此这至少需要是一个可调整的函数。
所以如果 n 为 3,k 为 2:
a = [0, 1, 2, 3]
k = 2
desired = [(0,0), (0, 1), (0, 2), ..., (2,3), (3,0), ..., (3,3)]
在 python 中,我会使用 itertools.product() 函数:
for p in itertools.product(a, repeat=2):
print p
在 Go 中执行此操作的惯用方法是什么?
初步猜测是一个返回整数切片的闭包,但感觉不是很干净。
【问题讨论】:
标签: iterator go cartesian-product