def redivmod(initial_value, factors):
    """
    Chop up C{initial_value} according to the list of C{factors} and return a
    formatted string.
    """
    result = []
    value = initial_value
    for divisor, label in factors:
        if not divisor:
            remainder = value
            if not remainder:
                break
        else:
            value, remainder = divmod(value, divisor)
            if not value and not remainder:
                break
        if remainder == 1:
            # depluralize
            label = label[:-1]
        if six.PY2:
            addition = unicode(remainder) + ' ' + unicode(label)
        else:
            addition = str(remainder) + ' ' + str(label)
        result.insert(0, addition)
    if len(result) > 1:
        result[-1] = "and " + result[-1]
    if result:
        return ', '.join(result)
    else:
        return "instantly"