Скажем, у меня есть ArrayList, содержащий элементы {1,2,3,4}, и я хочу перечислить все возможные комбинации двух элементов в ArrayList. т.е. (1,2), (1,3), (1,4), (2,3), (2,4), (3,4). Каков наиболее элегантный способ сделать это?