# -*- coding: utf-8 -*-"""
Created on Mon Nov 29 07:40:36 2021
Function: 输入整数n的全排列
@author: 小梁aixj
"""import random
n=int(input('输入整数n(3<=n<=7):'))
t=list()
t1=set()for i inrange(1, n+1):
t.append(str(i))whileTrue:sum=1for i inrange(1, n+1):sum*= i
iflen(t1)>=sum:break
random.shuffle(t)
t1.add("".join(t))
s=sorted(t1)for i in s:print(i,end=" ")
# -*- coding: utf-8 -*-"""
Created on Mon Nov 29 08:01:27 2021
Function: 将一组数尽可能均匀地分成两堆,使两个堆中的数的和尽可能相等
@author: 小梁aixj
"""
count=0defdeal(data, flag):
a=[]for i in data:if i >= flag:return[i]elif a==[]:
a.append([i])else:
a=a+[k+[i]for k in a ifsum(k)+i <= flag]
a.append([i])
target=sum(max(a, key=sum))returnlist(filter(lambda x:sum(x)==target, a))if __name__=="__main__":
c=[2,1,3,1,5,2,3,4]
flag=sum(c)//2
res=deal(c, flag)print(res)