下面是我的代码:
def combinationUtil(arr, n, r,index, data, i):
if(index == r):
for j in range(r):
print(data[j], end = " ")
print(" ")
return
if(i >= n):
return
data[index] = arr[i]
combinationUtil(arr, n, r, index + 1, data, i + 1)
combinationUtil(arr, n, r, index, data, i + 1)
def printcombination(arr, n, r):
data = list(range(r))
combinationUtil(arr, n, r, 0, data, 0)
var = []
pp = 5
r = 3
arr = []
for i in range(1, pp+1):
arr.append(i)
n = len(arr)
printcombination(arr, n, r)
它给了我这个输出:
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
1 2 3
1 2 4
1 2 5
1 3 4
1 3 5
1 4 5
2 3 4
2 3 5
2 4 5
3 4 5
我想将此输出另存为python中的变量
答案 0 :(得分:0)
您有一个组合实用程序例程,可以产生感兴趣的输出。
如果您正在呼叫其他人的例程,则可能需要分配
sys.stdout
到io.StringIO()
来捕获输出。
但就目前而言,您可以控制源代码, 这样您就可以轻松替换
for j in range(r):
print(data[j], end=' ')
print(' ')
具有以下更方便的界面:
yield [data[j] for j in range(r)]
然后进行迭代,例如:
for row in combinationUtil(arr, n, r, 0, list(range(r)), 0):
print(row)
Cf itertools。