Applying loop functions with input list of iterators

You need to use SlotSequence (##) in place of Slot (#).

# refers to the first element (in your case to {a, 0, 4}) in a sequence of slots.

Table[iterator[[All, 1]], ##] & @@ iterator 

{{{0, 0}, {0, 1}, {0, 2}, {0, 3}, {0, 4}, {0, 5}},
{{1, 0}, {1, 1}, {1, 2}, {1, 3}, {1, 4}, {1, 5}},
{{2, 0}, {2, 1}, {2, 2}, {2, 3}, {2, 4}, {2, 5}},
{{3, 0}, {3, 1}, {3, 2}, {3, 3}, {3, 4}, {3, 5}},
{{4, 0}, {4, 1}, {4, 2}, {4, 3}, {4, 4}, {4, 5}}}

Less flexibly, you could also use

Table[iterator[[All, 1]], #, #2] & @@ iterator

same result


In case you think you need an explicit iterator, let me show how it can be done without one

Outer[List, Range[0, 4], Range[0, 5]]

...or

Table[{a, b}, {a, 0, 4}, {b, 0, 5}];

...or

Table[{a, b}, Evaluate[iterator[[1]]], Evaluate[iterator[[2]]]]