'Assign a simple slice; Can assign slice of any length'

def _assign_simple_slice(self, start, stop, valueList):

    origLen = len(self)
    stop = max(start, stop)
    newLen = (((origLen - stop) + start) + len(valueList))
    def newItems():
        for i in xrange((origLen + 1)):
            if (i == start):
                for val in valueList:
                    (yield val)
            if (i < origLen):
                if ((i < start) or (i >= stop)):
                    (yield self._get_single_internal(i))
    self._rebuild(newLen, newItems())
