Go solution with comments
\nfunc ambiguousCoordinates(s string) []string {\n    res := []string{}\n    // remove parenthesis\n    s = s[1:len(s) - 1]\n\n    for i := 1; i < len(s); i++ {
```\nfunc ambiguousCoordinates(s string) []string {\n    res := []string{}\n    // remove parenthesis\n    s = s[1:len(s) - 1]\n\n    for i := 1; i < len(s); i++ {\n        // generate possible x coordinates based on split\n        lefts := gen(s, 0, i)\n        // generate possible y coordinates based on split\n        rights := gen(s, i, len(s))\n\n        // for each possible pair of  coordinates\n        for _, left := range lefts {\n            for _, right := range rights {\n                val := "(" + left + ", " + right + ")"\n                res = append(res, val)\n            }\n        }\n    }\n\n    return res\n}\n\nfunc gen(s string, start, end int) []string {\n    res := []string{}\n\n    // partitioning for whole number and decimal part\n    for p := 1; p <= end - start; p++ {\n        // whole number part\n        w := s[start:start + p]\n        // decimal number part\n        d := s[start + p:end]\n\n        // either whole number part is a zero or it cannot start with zero\n        // and either decimal part doesn\'t exist or it cannot end with a zero\n        if (w == "0" || w[0] != \'0\') && (len(d) == 0 || d[len(d) - 1] != \'0\') {\n            if len(d) == 0 {\n                // decimal part does not exist\n                res = append(res, w)\n            } else {\n                // decimal exists\n                res = append(res, w + "." + d)\n            }\n        }\n    }\n\n    return res\n}\n```
['Go']