import math
import numpy as np

class IterTools(object):
    """description of class"""

    @staticmethod
    def product(*args):
        repeat = 1
        # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
        # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
  

        pools = [tuple(pool) for pool in args] * repeat
        result = [[]]
        for pool in pools:
            result = [x+[y] for x in result for y in pool]
        for prod in result:
            yield tuple(prod)



66468869624fd65353c94fde2138af5cba63e009
<mask token>


class IterTools(object):
    <mask token>
    <mask token>

<mask token>


class IterTools(object):
    <mask token>

    @staticmethod
    def product(*args):
        repeat = 1
        pools = [tuple(pool) for pool in args] * repeat
        result = [[]]
        for pool in pools:
            result = [(x + [y]) for x in result for y in pool]
        for prod in result:
            yield tuple(prod)

<mask token>


class IterTools(object):
    """description of class"""

    @staticmethod
    def product(*args):
        repeat = 1
        pools = [tuple(pool) for pool in args] * repeat
        result = [[]]
        for pool in pools:
            result = [(x + [y]) for x in result for y in pool]
        for prod in result:
            yield tuple(prod)

import math
import numpy as np


class IterTools(object):
    """description of class"""

    @staticmethod
    def product(*args):
        repeat = 1
        pools = [tuple(pool) for pool in args] * repeat
        result = [[]]
        for pool in pools:
            result = [(x + [y]) for x in result for y in pool]
        for prod in result:
            yield tuple(prod)

import math
import numpy as np

class IterTools(object):
    """description of class"""

    @staticmethod
    def product(*args):
        repeat = 1
        # product('ABCD', 'xy') --> Ax Ay Bx By Cx Cy Dx Dy
        # product(range(2), repeat=3) --> 000 001 010 011 100 101 110 111
  

        pools = [tuple(pool) for pool in args] * repeat
        result = [[]]
        for pool in pools:
            result = [x+[y] for x in result for y in pool]
        for prod in result:
            yield tuple(prod)


