前スレの942です流れてしまったようなのでもう一度お願いします
David van Brackle って人が書いたプログラムで1行で書けけるプログラムなんだけれども


main(Q,O)char**O;{if(--Q){main(Q,O);O[Q][0]^=0X80;for(O[0][0]=0;O[++O[0][0]]!=0;)if(O[O[0][0]][0]>0)puts(O[O[0][0]]);puts("----------");main(Q,O);}}

このプログラムを実行するとコマンドラインの引数すべての部分集合を表示することができるらしいのですが
どうして表示されるのか解説をしろという問題なのですが
どうしてなるのかわかる方はいらっしゃいませんか?
解説できる方がいたら解説をお願いします。