How do I print a list of lists where the inner lists contain both strings and lists of strings?

For example,

list1 = [ ['str1', 'str2', 'str3'],
          [['str4', 'str5'], 'str6', 'str7', 'str8'],
          ['str9', 'str10']]

I would like list1 to output as follows:

str1 str2 str3
str4 str5 str6 str7 str8
str9 str10

This way each of the inner lists belonging to the first layer of inner lists are on their own lines.

In the above example I would call the section depicted below an inner list of the first layer:

['str1', 'str2', 'str3'] 

However in the following section I would say str4 and str5 are in an inner list belonging to the second layer. In other words they belong to an inner list of an inner list.

[['str4', 'str5'], 'str6', 'str7', 'str8']