[Python3] backtracking
\n\nclass Solution:\n    def maxLength(self, arr: List[str]) -> int:\n        """\n        []\n        un                              iq           ue    \n    
\n```\nclass Solution:\n    def maxLength(self, arr: List[str]) -> int:\n        """\n        []\n        un                              iq           ue    \n        iq              ue(duplicate)\n        ue(duplicate)\n        we don\'t want to going deep after we already find a duplicate\n        """\n        self.output = 0\n        self.backtracking([],arr,0)\n        return self.output\n    def backtracking(self,subset,arr,start):\n        concatenate = \'\'.join(subset)\n        #print(start,concatenate)\n        if len(concatenate) == len(set(concatenate)):\n            self.output = max(self.output, len(concatenate))\n        for i in range(start,len(arr)):\n            if len(concatenate) > len(set(concatenate)):\n                break\n            subset.append(arr[i])\n            self.backtracking(subset,arr,i+1)\n            subset.pop()\n```
['Backtracking', 'Python3']