def r(a,c=[],z=[]):
a.sort()
for i,v in enumerate(a):z+=[c+[v]]if v+sum(c)==10*0**(c+[v]in z)else r(a[i+1:],c+[v],z)*0
return z
res = r( [1,4,5,5,2,3,1,4] )
print( res )
ZGVmIHIoYSxjPVtdLHo9W10pOgogYS5zb3J0KCkKIGZvciBpLHYgaW4gZW51bWVyYXRlKGEpOnorPVtjK1t2XV1pZiB2K3N1bShjKT09MTAqMCoqKGMrW3ZdaW4geillbHNlIHIoYVtpKzE6XSxjK1t2XSx6KSowCiByZXR1cm4gegoKCnJlcyA9IHIoIFsxLDQsNSw1LDIsMywxLDRdICkKcHJpbnQoIHJlcyAp
[[1, 1, 3, 5], [1, 1, 4, 4], [1, 2, 3, 4], [1, 4, 5], [2, 3, 5], [2, 4, 4], [5, 5]]