Все остальные ответы отвечают на ваш вопрос, но я хотел бы предложить лучшую альтернативу, itertools.combinations
:
from itertools import combinations
print(list(combinations(range(3), 2)))
# [(0, 1), (0, 2), (1, 2)]
Почему это лучше?
- Тамэто не повторение.Мы указываем
range(3)
только один раз. - Это проверено, стандартный код библиотеки.
- Короче и удобочитаемее.
- (Если вы используете CPython, который вы, вероятно,)реализован на C, что означает, что он (обычно) быстрее, чем вложенные циклы Python.