As you see, I did a finite semigroup and then try to find its possible ideals in a very basic way (with the hand of a friend):
> f:=FreeSemigroup("a","b");;
a:=f.1;; b:=f.2;;
s:=f/[[a^3,a],[b^2,a^2],[b*a,a*b^3]];;
e:=Elements(s);;
w1:=List([1..Size(e)],i->Elements(SemigroupIdealByGenerators(s,[e[i]])));;
w2:=DuplicateFreeList(w1);;
w3 := Combinations(w2);;
for i in [1..Size(w3)] do
w3[i] := DuplicateFreeList(Flat(w3[i]));;
od;;
w3 := DuplicateFreeList(w3);
> [ [ ], [ b*a*b, b, b^2, b*a, b*a^2 ], [ a, a^2, a*b, a^2*b ] ]
Do you think that above codes suffice to make them visible appropriately? Thanks for your attention!

w4:=DuplicateFreeList(Flat(w3));it will return[ b*a*b, b, b^2, b*a, b*a^2 ]. The code in question simply have $ab$ and $ba$ in different sublists. – Olexandr Konovalov Dec 11 '15 at 20:56