Using itertools cartesian product