Checking every substring is O(n2) substrings, and verifying each for uniqueness takes O(n). Total: O(n3). Way too slow.
Think about what happens when you find a duplicate. You don't need to start over from scratch. If "abcb" has a duplicate at the end, you know the next valid substring starts after the first "b".