':type num: str
:type target: int
:rtype: List[str]'

def addOperators(self, num, target):

    (result, expr) = ([], [])
    (val, i) = (0, 0)
    val_str = ''
    while (i < len(num)):
        val = (((val * 10) + ord(num[i])) - ord('0'))
        val_str += num[i]
        if (str(val) != val_str):
            break
        expr.append(val_str)
        self.addOperatorsDFS(num, target, (i + 1), 0, val, expr, result)
        expr.pop()
        i += 1
    return result
