Элемент набора должен быть хэшируемым, что означает неизменяемый, используйте кортеж вместо списка.Или вы можете использовать frozenset.
Для "get all the distinct Pythagorean triples [for me (3,4,5)=(4,3,5)].
" вы можете ограничить i
как меньший, j
как больший, пример кода здесь:
S = set()
for i in range(1, 100):
# include i to support i=j case
for j in range(i, 100):
for k in range(1, 100):
if i ** 2 + j ** 2 == k ** 2:
S.add((i, j, k))
Надеюсь, что это поможет вам.