Posted to tcl by mjanssen at Mon Sep 16 07:20:45 GMT 2013view pretty

proc my_mrange {a b args} {
   set result {}
   for {set i $a} {$i <= $b} {incr i} {
      if {[llength $args]%2==0 && $args ne {}} {
	foreach item [my_mrange {*}$args] {
          lappend result $i {*}$item
        }  
      } else {
      	lappend result $i
      }
   }
   return $result
}