lst = {{{a, b}, {c, d}}, {{e, f}, {h, i}}}; You can use [`Tuples`](https://reference.wolfram.com/language/ref/Tuples.html) or [`Outer`](https://reference.wolfram.com/language/ref/Outer.html) or [`Distribute`](https://reference.wolfram.com/language/ref/Distribute.html): Tuples[lst] >{{{a, b}, {e, f}}, {{a, b}, {h, i}}, {{c, d}, {e, f}}, {{c, d}, {h, i}}} Join @@ Outer[List, ## & @@ lst, 1] > {{{a, b}, {e, f}}, {{a, b}, {h, i}}, {{c, d}, {e, f}}, {{c, d}, {h, i}}} Distribute[lst, List] > {{{a, b}, {e, f}}, {{a, b}, {h, i}}, {{c, d}, {e, f}}, {{c, d}, {h, i}}}