This question is heavily based off this question, but should pose a number of additional difficulties.
You must write a program or function that, when receiving a string, prints out all possible anagrams of it. For the purpose of this question, an anagram is a string that contains the same character as the original string, but is not the original string. A subanagram is an anagram of a substring of an inputted string. Anagrams and subanagrams do not have to be or contain actual words.
You may accept a string, which may be of any length > 0, by any standard input method. It may contain any ASCII characters.
You may output all of the possible anagrams and subanagrams of the inputted string in any standard way. You must not output the same string twice, or output a string equal to the input.
Standard Loopholes are disallowed
This is code-golf, least bytes wins.