Combining lists with respect according to length of sublists
If your first list has the form Range[n]
then
b = {{1}, {1}, {1, 2}, {1, 3}, {1, 3, 4}, {1, 3, 5}};
Flatten[MapIndexed[{First[#2], #} &, b, {2}], {{2}, {1}}]
{{{1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}}, {{3, 2}, {4, 3}, {5, 3}, {6, 3}}, {{5, 4}, {6, 5}}}
Alternatively:
a = {1, 2, 3, 4, 5, 6};
Flatten[MapThread[Thread@*List, {a, b}], {{2}, {1}}]
a = {1, 2, 3, 4, 5, 6};
b = {{1}, {1}, {1, 2}, {1, 3}, {1, 3, 4}, {1, 3, 5}};
Inner[Thread[{##}] &, a, b, Flatten[{##}, {{2}, {1}}] &]
{{{1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}},
{{3, 2}, {4, 3}, {5, 3}, {6, 3}},
{{5, 4}, {6, 5}}}
Also
f1 = Flatten[#, {{2}, {1}}] &;
f2 = Thread /@ # &;
Composition[f1, f2, f1]@{a, b}
{{{1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}},
{{3, 2}, {4, 3}, {5, 3}, {6, 3}},
{{5, 4}, {6, 5}}}