Ответ:

Числовые значения букв определяются условием как различные цифры, но для нахождения максимума и минимума нужно проверить допустимые назначения цифр буквам Ч, А, Й, С, Х, Р с учётом того, что первые цифры чисел не равны нулю. Привожу воспроизводимый перебор всех таких назначений:

from itertools import permutations

letters = 'ЧАЙСХР'
values = []
for ds in permutations(range(10), len(letters)):
    d = dict(zip(letters, ds))
    if d['Ч'] == 0 or d['С'] == 0:
        continue
    chay = 100*d['Ч'] + 10*d['А'] + d['Й']
    sahar = 10000*d['С'] + 1000*d['А'] + 100*d['Х'] + 10*d['А'] + d['Р']
    values.append((chay + sahar, d))

print(min(values), max(values))

В записи «САХАР» буква А повторяется в разрядах тысяч и десятков, поэтому в обоих разрядах используется одна и та же цифра. Числовые итоги перебора здесь не отображаются; для получения конкретных минимума и максимума необходимо выполнить код.