from itertools import product, permutations
from fractions import Fraction

'''
Liczby utworzone z liczb 1, 2, 4, 7 i podstawowych operacji (BEZ nawiasow!).
Każdej liczby używamy dokładnie raz, operacji używamy dowolnie.
Dla każdego uzyskanego wyniku, przykład jak go uzyskać.
'''

numbers = [1, 2, 4, 7]
operators = ['+', '-', '*', '/']

if __name__ == "__main__":
    results = {}

    for op1, op2, op3 in product(operators, repeat=3):
        for n1, n2, n3, n4 in permutations(numbers):
            expr = f"Fraction({n1},1){op1}Fraction({n2},1){op2}Fraction({n3},1){op3}Fraction({n4},1)"
            value = eval(expr)
            results[value] = expr
    
    for value, expr in results.items():
        print(expr, "=", value)
    print(len(results))
