Easy Python Solution
```\nclass Solution:\n    def smallestSubsequence(self, s: str) -> str:\n        d={v:k for k,v in enumerate(s)}\n        stack=[]\n        for k,v in enumerate
```\nclass Solution:\n    def smallestSubsequence(self, s: str) -> str:\n        d={v:k for k,v in enumerate(s)}\n        stack=[]\n        for k,v in enumerate(s):\n            if v not in stack:\n                while stack and stack[-1]>v and d[stack[-1]]>k:\n                    stack.pop()\n                stack.append(v)\n        return "".join(stack)
['Stack', 'Python', 'Python3']