Модуль itertools предоставляет функцию комбинаций, которая выглядит идеально для этого, предполагая, что ваши данные представляют собой список пар кортежей, например:
import itertools as it
#
if __name__ == "__main__":
points =[(0,0), (4,0), (4,3), (1,1)]
temp = list(it.combinations(points, 2))
for pair in temp:
print(f"{pair} distance = {get_distance(pair[0], pair[1])}")
Дает этот вывод:
(0, 0), (4, 0) = 4.0
(0, 0), (4, 3) = 5.0
(0, 0), (1, 1) = 1.4142135623730951
(4, 0), (4, 3) = 3.0
(4, 0), (1, 1) = 3.1622776601683795
(4, 3), (1, 1) = 3.605551275463989
Отредактируйте, если вы не можете использовать itertools, это может быть обходной путь:
count = 0
combos = []
while count < len(points):
temp = [(points[count], x) for x in points[count+1:]]
combos.extend(temp)
count += 1
for x in combos:
print x
Понимание списка не слишком сложно разбить на циклы, если этого требует ваша школа. Однако нарезка более или менее обязательна.