Python easy to read and understand | recursion
```\nclass Solution:\n    def solve(self, words, index, word):\n        if len(word) != len(set(word)):\n            return\n        self.ans = max(self.ans, le
```\nclass Solution:\n    def solve(self, words, index, word):\n        if len(word) != len(set(word)):\n            return\n        self.ans = max(self.ans, len(word))\n        if index == len(words):\n            return\n        for i in range(index, len(words)):\n            self.solve(words, i+1, word+words[i])\n    \n    def maxLength(self, arr: List[str]) -> int:\n        self.ans = 0\n        self.solve(arr, 0, \'\')\n        return self.ans
['Recursion', 'Python', 'Python3']