def sierpinski(triangle, n):
    if n == 0:  #cas base
        lt = [triangle]
    else:
        a, b, c = triangle
        c2 = mig(a, b)
        a2 = mig(b, c)
        b2 = mig(c, a)
        lt = ( sierpinski((a, c2, b2), n-1) + 
               sierpinski((b, a2, c2), n-1) +
               sierpinski((c, b2, a2), n-1) )
    return lt

def mig(p1, p2):
    return ( (p1[0]+p2[0]) / 2, (p1[1]+p2[1]) / 2 )


