Instead of using loops, I would use expand.grid to make all the combinations and then the apply() function to iterate through the rows. In the example below, I used the paste() function because I don't have zipcodeR. I hope it gets the idea across.
list1 <- c("45011","65322")
list2 <- c("65432","51545")
AllZips <- expand.grid(list1,list2)
AllZips
Var1 Var2
1 45011 65432
2 65322 65432
3 45011 51545
4 65322 51545
AllZips$Output <- apply(AllZips, MARGIN = 1, function(Vec) paste(Vec[1],Vec[2], sep = "|"))
> AllZips
Var1 Var2 Output
1 45011 65432 45011|65432
2 65322 65432 65322|65432
3 45011 51545 45011|51545
4 65322 51545 65322|51545