■「もっと簡単な方法」は見なかったことにして、別解を。 シェル芸で部分集合を全通り求める方法(別解求む) http://blog.ueda.asia/?p=5611 ■4桁のすべてを4桁のフラグに読み替えて、2進数にするだけ。 $ for n in `seq 0 15`;do \ echo "ibase=10;obase=2 ;$n" | bc | \ awk '{printf "%04d\n",$1}' | sed s/./"& "/g | \ awk '{if($1>0) printf "a"}; \ {if($2>0) printf "b"}; \ {if($3>0) printf "c"}; \ {if($4>0) printf "d"}'; \ echo; \ done | sed s/"^"/"{"/g | sed s/"\$"/"&}"/g | sed s/"[a-z]"/",&"/g {} {,d} {,c} {,c,d} {,b} {,b,d} {,b,c} {,b,c,d} {,a} {,a,d} {,a,c} {,a,c,d} {,a,b} {,a,b,d} {,a,b,c} {,a,b,c,d}