'Multiply a sequence of polynomials or containers of polynomials.
Examples
>>> from sympy.polys.rings import ring
>>> from sympy.polys.domains import ZZ
>>> R, x = ring("x", ZZ)
>>> R.mul([ x**2 + 2*i + 3 for i in range(4) ])
x**8 + 24*x**6 + 206*x**4 + 744*x**2 + 945
>>> _.factor_list()
(1, [(x**2 + 3, 1), (x**2 + 5, 1), (x**2 + 7, 1), (x**2 + 9, 1)])'

def mul(self, *objs):

    p = self.one
    for obj in objs:
        if is_sequence(obj, include=GeneratorType):
            p *= self.mul(*obj)
        else:
            p *= obj
    return p
