classSolution: defpartition(self, A: str) -> List[List[str]]: defg(l,r): while l<=r: if A[l]!=A[r]: returnFalse elif A[l]==A[r]: l+=1 r-=1 returnTrue
deff(start,C): if start>=len(A): Z.append(C[:]) return if start<len(A): for end inrange(start,len(A)): if g(start,end): C.append(A[start:end+1]) f(end+1,C) C.pop() ifnot A: return [] Z=[] f(0,[]) return Z