Discrete Mathematics I am having great difficulty trying to understand a question I have found and am keen to finding the solution and would appreciate any help.
"Suppose that ten computer programs have been submitted for batch processing. Only one program may run at a time. In how many ways can the program run if?
1) there is no restrictions on the processing order? 
2) four of the programs are considered higher in priority than the other six and should be processed first? 
3) the programs can be separated into three top priority(to be processed first), five medium priority (to be processed immediately after the top priority programs) and two low priority programs(to be processed last)?

1:
The answer is $10!$. This is because there are $10$ ways to choose the first program to be processed, then $9$ options for the second program, then $8$ options for the third and so on. So in total there are 
$10\cdot9\cdot8\cdot7\cdot6\cdot5\cdot4\cdot3\cdot2\cdot1=10!$ orders.

2: The answer is $4!\cdot 6!$ because there are $4!$ ways to order the high priority programs and $6!$ ways to order the low priority programs.

$3$: The answer is $3!\cdot 5!\cdot 2!$ because there are $3!$ ways to order the high priority programs, $5!$ ways to order the medium priority programs and $2!$ ways to order the low priority programs.
