# 1079. Letter Tile Possibilities """ given 'n' tiles where each tile has one letter ('tiles[i]') printed on it. return the number of possible non-empty letters printed on those tiles. """ class Solution(object): def numTilePossibilities(self, tiles): """ :type tiles: str :rtype: int """ ans = set() def dfs(path, tiles): if path: ans.add(path) for i in range(len(tiles)): dfs(path + tiles[i], tiles[:i] + tiles[i + 1 :]) dfs("", tiles) return len(ans) if __name__ == "__main__": obj = Solution() print(obj.numTilePossibilities("AAB")) print(obj.numTilePossibilities("AAABBC")) print(obj.numTilePossibilities("V"))