First try on product (alot like zip, except for it++ and another constructor signature for the iterators)