Python intuitive solution
\n\'\'\'\nSplit the number into left and right halves.\nCompute possible combinations of each half\npick one from left comb and one from right comb to build fin
```\n\'\'\'\nSplit the number into left and right halves.\nCompute possible combinations of each half\npick one from left comb and one from right comb to build final results.\nwhen build the combinations of a given word, the helper function doesn\'t count invalid numbers.\ntime complexity: O(n*n*n)\nspace: O(n*n)\n\'\'\'\nclass Solution:\n    def ambiguousCoordinates(self, S: str) -> List[str]:\n        res = []\n        len_S = len(S)\n        for i in range(2,len_S-1):\n            left = S[1:i]\n            right = S[i:len_S-1]\n            left_comb = self.helper(left)\n            right_comb = self.helper(right)\n            for l in left_comb:\n                for r in right_comb:\n                    res.append(\'(\'+l+\', \'+r+\')\')\n        return res\n    \n    def helper(self, word):\n        if len(word) == 1:\n            return [word]\n        if word[0] == \'0\':\n            if word[-1] != \'0\':\n                return [\'0.\'+word[1:]]\n            return []\n        res = [word]\n        if word[-1] != \'0\':\n            for i in range(1, len(word)):\n                res.append(word[:i]+\'.\'+word[i:])\n        return res\n            \n```
[]