Sounds like Outer:
originalList = {{a}, {b, c}, {d, e, f}}; Flatten[Outer[List, Sequence @@ originalList], 2] Out[]= {{a, b, d}, {a, b, e}, {a, b, f}, {a, c, d}, {a, c, e}, {a, c, f}}
Though Outer is definitely possible, I would definitely used Tuples in this case!
originalList = {{a}, {b, c}, {d, e, f}} Tuples[originalList]
much much easier!
Also note that Tuples will generally be faster than Outer for this operation. Generally Outer is kinda slow because it generally(always?) does not vectorizes calculations... which is sometimes possible...
Yes, this is neat!