cartesian Product
Creates cartesian product between all the elements from this and other iterable. E.g. when this contains 1,2,3 and other contains 'a', 'b', the result will be {Pair(1,'a'), Pair(1,'b'), Pair(2,'a'), Pair(2,'b'), Pair(3,'a'), Pair(3,'b')}.
List cartesian production.
See also
: https://stackoverflow.com/a/53763936/41071