Просто приведите obj
к list
:
print(list(obj))
Это даст вам следующий результат:
[(0, 1, 2, 3), (0, 1, 3, 2), (0, 2, 1, 3), (0, 2, 3, 1), (0, 3, 1, 2), (0, 3, 2, 1), (1, 0, 2, 3), (1, 0, 3, 2), (1, 2, 0, 3), (1, 2, 3, 0), (1, 3, 0, 2), (1, 3, 2, 0), (2, 0, 1, 3), (2, 0, 3, 1), (2, 1, 0, 3), (2, 1, 3, 0), (2, 3, 0, 1), (2, 3, 1, 0), (3, 0, 1, 2), (3, 0, 2, 1), (3, 1, 0, 2), (3, 1, 2, 0), (3, 2, 0, 1), (3, 2, 1, 0)]
Это прямой ответ на ваш вопрос.Еще одна хорошая вещь, чтобы выяснить, действительно ли вам нужно то, что вы просите.
Видите ли, есть причина, по которой permutations
возвращает генератор .Если вы не знакомы с этим шаблоном, я настоятельно рекомендую прочитать об этом.Короче говоря, обычно вы не хотите приводить такие вещи к list
, если вам действительно не нужно, чтобы это было list
(например, вы хотите получить доступ к элементам напрямую по индексу).В вашем случае, когда вам нужно печатать только перестановки, абсолютно ничего плохого в том, чтобы использовать цикл for
.
Вот одна строка для печати одной перестановки в строке:
print('\n'.join(str(permutation) for permutation in obj))
Но опять же, простой цикл for
, который вы уже используете, просто отлично.Помните, что просто лучше, чем сложное .