from itertools import permutations, compress
m = 3
n = 3
print(
"\n".join(
map(
#pretty print, for output readability
lambda single_division: "{" +
", ".join(
map(
lambda single_set:
"{" +
', '.join(
map(
str,
single_set
)
) +
"}",
single_division
)
) +
"}",
#actual work here
filter(
lambda single_division: len(set(map(sum, single_division))) == 1,
{
frozenset(
frozenset(
compress(
range(1,m*n+1),
map(lambda x: x == i, perm)
)
)
for i in range(m)
)
for perm in set(
permutations(
[i for j in range(n) for i in range(m)]
)
)
}
)
)
)
)
CmZyb20gaXRlcnRvb2xzIGltcG9ydCBwZXJtdXRhdGlvbnMsIGNvbXByZXNzCgptID0gMwpuID0gMwoKcHJpbnQoCiAgICAiXG4iLmpvaW4oCgkJbWFwKAogICAgCQkgICAgI3ByZXR0eSBwcmludCwgZm9yIG91dHB1dCByZWFkYWJpbGl0eQoJCQlsYW1iZGEgc2luZ2xlX2RpdmlzaW9uOiAieyIgKyAKCQkJCQkiLCAiLmpvaW4oCgkJCQkJCW1hcCgKCQkJCQkJCWxhbWJkYSBzaW5nbGVfc2V0OiAKCQkJCQkJCQkieyIgKyAKCQkJCQkJCQknLCAnLmpvaW4oCgkJCQkJCQkJCW1hcCgKCQkJCQkJCQkJCXN0ciwKCQkJCQkJCQkJCXNpbmdsZV9zZXQKCQkJCQkJCQkJKQoJCQkJCQkJCSkgKyAKCQkJCQkJCQkifSIsIAoJCQkJCQkJc2luZ2xlX2RpdmlzaW9uCgkJCQkJCSkKCQkJCQkpICsgCgkJCQkJIn0iLAogICAgICAgIAkJI2FjdHVhbCB3b3JrIGhlcmUKCQkJZmlsdGVyKAoJCQkJbGFtYmRhIHNpbmdsZV9kaXZpc2lvbjogbGVuKHNldChtYXAoc3VtLCBzaW5nbGVfZGl2aXNpb24pKSkgPT0gMSwgCgkJCgkJCQl7CgkJCQkJZnJvemVuc2V0KAoJCQkJCQlmcm96ZW5zZXQoCgkJCQkJCQljb21wcmVzcygKCQkJCQkJCQlyYW5nZSgxLG0qbisxKSwgCgkJCQkJCQkJbWFwKGxhbWJkYSB4OiB4ID09IGksIHBlcm0pCgkJCQkJCQkpCQoJCQkJCQkpIAoJCQkJCQlmb3IgaSBpbiByYW5nZShtKQoJCQkJCSkKCQkJCQlmb3IgcGVybSBpbiBzZXQoCgkJCQkJCXBlcm11dGF0aW9ucygKCQkJCQkJCVtpIGZvciBqIGluIHJhbmdlKG4pIGZvciBpIGluIHJhbmdlKG0pXQoJCQkJCQkpCgkJCQkJKQoJCQkJfQoJCQkpCgkJKQoJKQop
{{1, 5, 9}, {8, 3, 4}, {2, 6, 7}}
{{9, 2, 4}, {3, 5, 7}, {8, 1, 6}}