Это делается просто с itertools.combinations()
:
import itertools
...
for i, j in itertools.combinations(x, 2):
calc_something(i, j)
Это дает то, что вы хотите. В частности, он будет возвращать элементы в следующем порядке:
[(0, 1), (0, 2), (0, 3), (0, 4), (0, 5), (0, 6), (0, 7), (0, 8), (0, 9),
(1, 2), (1, 3), (1, 4), (1, 5), (1, 6), (1, 7), (1, 8), (1, 9),
(2, 3), (2, 4), (2, 5), (2, 6), (2, 7), (2, 8), (2, 9),
(3, 4), (3, 5), (3, 6), (3, 7), (3, 8), (3, 9),
(4, 5), (4, 6), (4, 7), (4, 8), (4, 9),
(5, 6), (5, 7), (5, 8), (5, 9),
(6, 7), (6, 8), (6, 9),
(7, 8), (7, 9),
(8, 9)]
[Что вы пробовали?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) – Volatility
Два в то время как петли, EAC h с счетчиком, используемым как индекс в списке ... но я бы предпочел использовать native для X в структуре List – d1337