class a {
public static void main
( String args
[] ) { char[] combos = new char[s.length()];
findCombos
( s,
new String(combos
),
0 );
}
private static void findCombos
( String str,
String combos,
int index
) {
char[] comboChars = combos.toCharArray();
if ( index == str.length()) {
return;
}
for ( int i = 0; i < str.length(); i++ ) {
char[] strChars = str.toCharArray();
comboChars[index] = strChars[i];
index++;
findCombos
(str,
new String(comboChars
), index
); index--;
}
}
}
Y2xhc3MgYSB7CgoKCiAgICAgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKCBTdHJpbmcgYXJnc1tdICkgewoJCQlTdHJpbmcgcz0iYWJjZCI7CiAgICAgICAgICAgICAgICBjaGFyW10gY29tYm9zID0gbmV3IGNoYXJbcy5sZW5ndGgoKV07CiAgICAgICAgICAgICAgICBmaW5kQ29tYm9zICggcywgbmV3IFN0cmluZyhjb21ib3MpLCAwICk7CgogICAgICAgIH0KCgoKICAgICAgICBwcml2YXRlIHN0YXRpYyB2b2lkIGZpbmRDb21ib3MoIFN0cmluZyBzdHIsIFN0cmluZyBjb21ib3MsIGludCBpbmRleCApIHsKCiAgICAgICAgICAgICAgICBjaGFyW10gY29tYm9DaGFycyA9IGNvbWJvcy50b0NoYXJBcnJheSgpOwoKCiAgICAgICAgICAgICAgICBpZiAoIGluZGV4ID09IHN0ci5sZW5ndGgoKSkgewoKICAgICAgICAgICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCBuZXcgU3RyaW5nKGNvbWJvQ2hhcnMpICk7CgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGZvciAoIGludCBpID0gMDsgaSA8IHN0ci5sZW5ndGgoKTsgaSsrICkgewogICAgICAgICAgICAgICAgICAgICAgICBjaGFyW10gc3RyQ2hhcnMgPSBzdHIudG9DaGFyQXJyYXkoKTsKICAgICAgICAgICAgICAgICAgICAgICAgY29tYm9DaGFyc1tpbmRleF0gPSBzdHJDaGFyc1tpXTsKICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgrKzsKICAgICAgICAgICAgICAgICAgICAgICAgZmluZENvbWJvcyhzdHIsIG5ldyBTdHJpbmcoY29tYm9DaGFycyksIGluZGV4KTsKICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgtLTsKCiAgICAgICAgICAgICAgICB9CgoKCgogICAgICAgIH0KCgp9