Perl 5 , 52 + 1 ( -n) = 53 Bytes

Antworten:

1

Tcl, 165.181 Bytes

set n -1
while {[incr n]<1<<[llength [set s [split $argv {}]]]} {puts [join [lmap c $s b [split [format %0[llength $s]b $n] {}] {string to[expr $b?{u}:{l}] $c}] ""]}

Verbesserungen dank Sergiol . Vorherige Antwort:

set s [split $argv {}]
set n -1
while {[incr n]<1<<[llength $s]} {set r ""
foreach c $s b [split [format %0[llength $s]b $n] {}] {set r $r[string [expr $b?{tou}:{tol}] $c]}
puts $r}

Verwendet eine Binärzahl, um beim Erstellen des Ausgabetexts zwischen Groß- und Kleinschreibung zu wählen.

Dúthomhas
quelle
165
Sergiol
@sergiol Das ist so anders als meins, dass du es als deine eigene Antwort posten solltest und dir einen guten Ruf dafür verschaffen solltest, großartig zu sein.
Dúthomhas
Nein. Ich habe nur kleine Teile Ihrer Antwort geändert. Ich habe weder den Ansatz noch die wesentlichen Algorithmen geändert. Aus meiner Sicht habe ich es nicht verdient, eine neue Antwort aus Ihrer Antwort zu erstellen. Und ich bezweifle, dass ich für den gleichen Zweck einen Algorithmus bekommen könnte, der kurz wie Ihr Original ist!
Sergiol
1

Attache , 39 Bytes

&Cross[Sum@V]##Unique@V#SwapCase=>Chars

Probieren Sie es online!

Ähnlich wie bei der Perl-Antwort. (Ich habe meine interessantere Alternative verloren, die sollte ich in den nächsten Stunden veröffentlichen.)

Conor O'Brien
quelle
0

JavaScript (ES6), 103

Verarbeitet Nicht-ASCII-Zeichen

(a,r=new Set)=>a?f(a.slice(1)).map(v=>(C=o=>r.add(a[0][`to${o}erCase`]()+v),C`Upp`,C`Low`))&&[...r]:[a]

Prüfung

f=(a,r=new Set)=>a?f(a.slice(1)).map(v=>(C=o=>r.add(a[0][`to${o}erCase`]()+v),C`Upp`,C`Low`))&&[...r]:[a]

function test() { O.textContent = f(I.value).join('\n') }

test()
<input id=I oninput='test()' value='ž1a'>
<pre id=O></pre>

edc65
quelle