I guess you want to have Cartesian product between all different column, A, B and C. Let's assume you have only those 3 columns then you could use two Joiner nodes to perform the product operation based on a fake column containing the same values in all rows; this is used to do the join. This column can be appended by using either the Java Snippet or Rule Engine node. Those have to be applied on all columns individually together with the Missing Value node to remove rows with missing '?' values. Does this make sense? However, if you have dynamic number of columns, you might want to have a look into the variable and loop feature of KNIME. I think this answers also this thread: http://tech.knime.org/forum/knime-users/aerospace-test-data