Python 2, 147146 bytes
from itertools import*
lambda i:sum([sorted({''.join(b)for b in __import__("itertools").permutations((i-n)*"0"+"1"*n)},key=lambda x:x[::-1])[::-1]for n in range(i+1)],[])
I'm still working on this, though any suggestions would be greatly appreciated!
Ungolfed
i=input()
import itertools
p=[]
for n in range(i+1):
x=(i-n)*"0"+"1"*n
t=[]
for b in itertools.permutations(x):t+=[''.join(b)] if ''.join(b) not in t else []
p.append(sorted(t, key=lambda x:x[::-1])[::-1])
p=sum(p,[])
print
for line in p:print line