#!/usr/bin/tclsh set digitses { 3388 3838 3883 8338 8383 8833 } set groups { "((x_x)_x)_x" "(x_x)_(x_x)" "(x_(x_x))_x" "x_((x_x)_x)" "x_(x_(x_x))" } foreach digits $digitses { foreach group $groups { for { set i 0 } { $i < 4 } { incr i } { regsub x $group [string range $digits $i $i].0 group } foreach o1 { - + / * } { regsub _ $group $o1 grp2 foreach o2 { - + / * } { regsub _ $grp2 $o2 grp3 foreach o3 { - + / * } { regsub _ $grp3 $o3 grp4 catch { expr $grp4 } result puts "$result = $grp4" } } } } }