class Test { static void Main(string[] args) { char[] chs = {'a','b','c','d'}; SubSet s = new SubSet(chs); s.Print(); } } class SubSet { char[] chs; int bits = 0; public SubSet(char[] chs) { this.chs = chs; } public void Print() { for(int i = 0;i < (1<<chs.Length);i++) { for(int j = 0; j< chs.Length; j++) if( ((1 << j) & i) !=0 ) Console.Write( chs[j] ); Console.WriteLine(); } } }