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

Réponses:

1

Tcl, 165 181 octets

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}] ""]}

Améliorations grâce au sergiol . Réponse précédente:

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}

Utilise un nombre binaire pour choisir entre majuscules / minuscules lors de la création du texte de sortie.

Dúthomhas
la source
165
sergiol
@sergiol C'est assez différent du mien que vous devez l'afficher comme votre propre réponse et obtenir une bonne réputation d'être génial.
Dúthomhas
Non. Je n'ai changé que des parties mineures de votre réponse, je n'ai pas changé l'approche ni les algorithmes essentiels, donc, à mon avis, je pensais que je ne méritais pas de créer une nouvelle réponse à partir de la vôtre! Et je doute que je puisse obtenir un algorithme court comme votre original dans le même but!
sergiol
1

Attaché , 39 octets

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

Essayez-le en ligne!

Similaire à la réponse Perl. (J'ai perdu mon alternative la plus intéressante, je devrais les publier dans les prochaines heures.)

Conor O'Brien
la source
0

JavaScript (ES6), 103

Gère les caractères non ASCII

(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]

Tester

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
la source