Maybe something like:
from itertools import izip_longest
alist = ['foo','bar','duh']
blist = ['ofo','ardavak','dot','dotdat']
combined_list = list(izip_longest(alist, blist, fillvalue=""))
for (i,j),(iplus1,jplus1) in izip_longest(combined_list, combined_list[1:], fillvalue=("", "")):
print i,j
print i,j+jplus1
print i+iplus1,j
print i+iplus1,j+jplus1
But be aware that zip() only takes min(len(alist),len(blist))
elements, i.e., the returned list is truncated in length to the length of the shortest argument sequence.