# How to make "zip" work faster?

I have these two finite sets $A$ and $B$ where the size of $A$ is typically much larger than the size of $B$. (typically $|A| is 200-500$ and $|B| is 10-50$) I am trying to enumerate all possible maps from $B$ to $A$ using the following idea - but this turns out to be very slow.

Is there a way to speed this up?

- Without the over all "for i" loop can I access any one of the "k"s? (for every i each $l$ is a list of tuples)

How can I just pick out any one such "k" list without wanting to wait for the whole code to run.

`S = [] from itertools import product for i in product(A,repeat = len (B)): k = zip(B,i) S.append(k) show(S)`

The number of such maps will be

`|A|**|B|`

. You're trying to store all`200**10`

(lower bound) such elements in a single list? That's not practical: you should try to construct an iterator instead of a list.