以前こんなエントリを書いたけど、こういったコードは自分で書かずに itertools を使うのが Python の定石っぽい。 1. 繰り返しを許さない組み合わせ itertools.combinations() を使う。 #!/usr/bin/env python # -*- coding: utf-8 -*- import itertools if __name__ == '__main__': l = [1, 2, 3, 4, 5] # 組み合わせ (1) # 繰り返しを許さない: 1,1 はない # 順序が違っても同じと見なす: 1,2 と 2,1 は同じ for element in itertools.combinations(l, 2): print(element) # 以下のコードと意味的に等価 ''' for i, iv in enumerate(l): for j,