import numpy as np d = {'a': 0, 'b': 1, 'c': 2, 'd': 3} d1 = 'abcd' n = len(d) cayley = [ list("abab"), list("abab"), list("abcd"), list("abcd"), ] for i in range(n): for j in range(n): elem = cayley[i][j] cayley[i][j] = d[elem] cayley = np.array(cayley, dtype=int) for i in range(n): for j in range(n): for k in range(n): p = cayley[j, i] q = cayley[i, k] pk = cayley[p, k] jq = cayley[j, q] print("\\begin{align*}") print(f" \\text{{Рассмотрим }} &i = {i}, \\, j = {j} \\\\") print(f" &k = {k} \\\\") print(f" &m_{{ji}} = {d1[p]}, m_{{ik}} = {d1[q]} \\\\") print(f" &(\\text{{Индекс }} m_{{ji}}) = p = {p}, \\, (\\text{{индекс }} m_{{ik}}) = q = {q} \\\\") print(f" &m_{{pk}} = {d1[pk]}, \\, m_{{jq}} = {d1[jq]} \\\\") if pk != jq: raise ValueError("что-то пошло не так...") print(f" &\\text{{Можно заметить, что }} m_{{pk}} = m_{{jq}}") print("\\end{align*}")