I have follow input data:
input_data = [
('obj1', 0),
('obj2', 0),
('obj3', 0),
('obj22', 0),
('obj4', 1),
('obj5', 1),
('obj6', 1),
('obj7', 2),
('obj8', 2),
('obj9', 3),
('obj10', 3),
]
I need to write an algorithm that will make permutations by 2 but except items where position (second element in tuple) for a left item will >= position of a right item or less than 1.
Example output:
expected = [
[('obj1', 0), ('obj4', 1)],
[('obj1', 0), ('obj5', 1)],
[('obj1', 0), ('obj6', 1)],
[('obj2', 0), ('obj4', 1)],
[('obj2', 0), ('obj5', 1)],
[('obj2', 0), ('obj6', 1)],
[('obj3', 0), ('obj4', 1)],
[('obj3', 0), ('obj5', 1)],
[('obj3', 0), ('obj6', 1)],
[('obj22', 0), ('obj4', 1)],
[('obj22', 0), ('obj5', 1)],
[('obj22', 0), ('obj5', 1)],
[('obj4', 1), ('obj7', 2)],
[('obj4', 1), ('obj8', 2)],
[('obj5', 1), ('obj7', 2)],
[('obj5', 1), ('obj8', 2)],
[('obj6', 1), ('obj7', 2)],
[('obj6', 1), ('obj8', 2)],
[('obj7', 2), ('obj9', 3)],
[('obj7', 2), ('obj10', 3)],
[('obj8', 2), ('obj9', 3)],
[('obj8', 2), ('obj10', 3)],
]