Use itertools.product
.
import itertools
lists = [
['loop01item01', 'loop01item02', 'loop01item03', 'loop01item04', 'loop0item05'],
['loop02item01', 'loop02item02', 'loop02item03', 'loop0item04', 'loop0item05'],
['loop03item01', 'loop03item02', 'loop03item03', 'loop03item04', 'loop03item05']
]
loops = int(raw_input("Enter the number of nested loops you want: "))
for elements in itertools.product(*lists[:loops]):
print elements
Result:
Enter the number of nested loops you want: 3
('loop01item01', 'loop02item01', 'loop03item01')
('loop01item01', 'loop02item01', 'loop03item02')
('loop01item01', 'loop02item01', 'loop03item03')
('loop01item01', 'loop02item01', 'loop03item04')
('loop01item01', 'loop02item01', 'loop03item05')
...
('loop01item01', 'loop02item02', 'loop03item01')
('loop01item01', 'loop02item02', 'loop03item02')
...
('loop01item02', 'loop02item01', 'loop03item01')
('loop01item02', 'loop02item01', 'loop03item02')
('loop01item02', 'loop02item01', 'loop03item03')
...
('loop01item02', 'loop02item02', 'loop03item01')
('loop01item02', 'loop02item02', 'loop03item02')
Use permutations
on the list indices, if you don't want any elements to share an index.
import itertools
lists = [
['loop01item01', 'loop01item02', 'loop01item03', 'loop01item04', 'loop0item05'],
['loop02item01', 'loop02item02', 'loop02item03', 'loop0item04', 'loop0item05'],
['loop03item01', 'loop03item02', 'loop03item03', 'loop03item04', 'loop03item05']
]
loops = int(raw_input("Enter the number of nested loops you want: "))
list_size = len(lists[0])
for indices in itertools.permutations(range(5), loops):
elements = [lists[i][idx] for i, idx in enumerate(indices)]
print elements