class Solution:
    def valid(self, s):
        for i in range(len(s)//2):
            if s[i] != s[-i-1]:
                return False
        return True
   
    def search(self, s, prev,ans):
        if s == '':
            ans.append(prev)
            return
        for i in range(len(s)):
            if self.valid(s[:i+1]):
                self.search(s[i+1:], prev + [s[:i+1]], ans)

    def partition(self, s: str) -> List[List[str]]:
        ans = []
        self.search(s, [], ans)
        return ans


길이가 짧아서 밑에 restore ip address랑 정확하게 같은 방법으로 풀림..