import math,itertools as i def f(k,p): while(len(p)>k): m=() for r in i.combinations(p,2): d=math.sqrt(sum(map(lambda x,y:(x-y)**2,*r))) if d<m:m=d;x,y=r t=p.remove;t(x);t(y);p+=[map(lambda g,h:(g+h)/2,x,y)] print p
-----