递归调用
n = list(map(int,input().split()))
d = []
zong = []
zong1 = set()
def check1(start,d):
global n
if start==0:
print('{0}='.format(n[0]),end='')
for i in range(len(d)-1):
print('{0}+'.format(d[i]),end='')
print(d[-1])
return d
ls = [i for i in range(1,start+1)]
for i in ls:
c=d[:]
d.append(i)
check1(start-i,d)
d = c
def check2(start,d):
global n,zong,zong1
if start==0:
a = [0 for i in range(n[0]+1)]
for i in d:
a[i] += 1
a = tuple(a)
if a not in zong1:
zong1.add(a)
print('{0}='.format(n[0]),end='')
for i in range(len(d)-1):
print('{0}+'.format(d[i]),end='')
print(d[-1])
return 0
ls = [i for i in range(1,start+1)]
for i in ls:
c=d[:]
d.append(i)
check2(start-i,d)
d = c
if n[1]==1:
check1(n[0],d)
else:
check2(n[0],d)