我有一个整数列表,
所以,如果
a = [0, ..., n]
。我想要生成所有可能的由 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中,有什么惯用的方法来做这个?
初步猜测是一个返回整数切片的闭包,但感觉不太规范。