"""  Exercice 2.17 :    opérations cryptées 
                        question 3 : PHILIPPE+MOUTOU=PILEPOIL ( 9 variables ) """
solutions=[]  
for P in range(10) :
    for H in range(10)  :
        if H==P : continue
        for I in range(10)  :
            if I==H or I==P : continue
            for L in range(10)  :
                if L==I or L==H or L==P : continue
                for E in range(10)  :  
                    if E==L or E==I or E==H or E==P : continue
                    for M in range(10)  :
                        if M==E or M==L or M==I or M==H or M==P : continue
                        for O in range(10)  :
                            if O==M or O==E or O==L or O==I or O==H or O==P : continue
                            for U in range(10)  :
                                if U==O or U==M or U==E or U==L or U==I or U==H or U==P : continue
                                for T in range(10)  :
                                    if T==U or T==O or T==M or T==E or T==L or T==I or T==H or T==P : continue
                                    num1=P*10**7+H*10**6+I*10**5+L*10**4+I*10**3+P*10**2+P*10+E
                                    num2=M*10**5+O*10**4+U*10**3+T*10**2+O*10+U
                                    num3=P*10**7+I*10**6+L*10**5+E*10**4+P*10**3+O*10**2+I*10+L
                                    if num1+num2==num3 :
                                        solutions.append(str(num1)+'+'+str(num2)+'='+str(num3))
if len(solutions)==0 :
    print("Ce problème n'a pas de solution.")
elif len(solutions)==1 :
    print("C'est un bon problème qui n'a qu'une solution : "+solutions[0])
else :
    print("Il y a {} solutions : ".format(len(solutions)))
    for i in range(len(solutions)):
        print("Solution n°{} : {}".format(i+1,solutions[i]))


    





