The problem: 

I would like to generate a list of permutations of strings in lexigraphical but excluding string inversions. For instance, if I have the following string: abc, I would like to generate the following list

```
abc
acb
bac

```

instead of the typical

```
abc
acb
bac
bca
cab
cba

```

An alternative example would look something like this:

```
100
010

```

instead of 

```
100
010 
001

```

Currently, I can generate the permutations using perl, but I am not sure on how to best remove the reverse duplicates. 

I had thought of applying something like the following:

```
create map with the following:
1)   100
2)   010
3)   001
then perform the reversion/inversion on each element in the map and create a new map with:

 1') 001
 2') 010
 3') 100

```

then compare and if the primed list value matches the original value, leave it in place, if it is different, if it's index is greater than the median index, keep it, else remove.

Trouble is, I am not sure if this is an efficient approach or not.

Any advice would be great.